Использование GPO для сбора данных об активности просмотра VMware
Наша группа безопасности хочет, чтобы мы начали регистрировать данные для внешнего доступа к нашей среде просмотра. Сначала мы думали, что безопасность представления будет регистрировать все исходные IP-адреса, которые имеют внешнюю природу, поэтому, если по какой-то причине произойдет вторжение, у нас будет запись об этом там.
Конечно, наш брандмауэр регистрирует всю эту информацию, но корреляция ее для просмотра является в лучшем случае отрывочной с нашей текущей реализацией.
Мы знаем, что на viewdesktops есть набор ключей в VolitateEnviroment, который содержит такие вещи, как исходный ip и имя пользователя и т. Д.
У нас есть сценарий, который при запуске в качестве сценария входа в систему, подключенный к учетной записи пользователя в AD, собирает информацию по мере необходимости.
Если у нас есть объект групповой политики, запускающий тот же сценарий, информация не собирается.
Мы чувствуем, что есть часть головоломки, которую нам не хватает, но мы не знаем, что. Если кто-то знает, что мы забываем или неверно конфигурируем, это было бы замечательно, или если у вас есть лучший способ сбора ip внешних источников для просмотра, в частности, мы бы тоже заинтересовались этим.
Спасибо,
РЕДАКТИРОВАТЬ КОД
Пакетный скрипт для выгрузки в текстовый файл @echo off timeout 20 echo % имя_компьютера%/%username% %time% %date% >>c:\vdi\vmware.txt echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>c:\vdi\vmware.txt reg запрос "HKEY_CURRENT_USER\Volatile Environment" /v "ViewClient_LoggedOn_Username">>c:\vdi\vmware.txt reg запрос "HKEY_CURRENT_USER\Volatile Environment" /v "ViewClient_IP_Address">>c:\vdi\vmware.txt echo.>>c:\vdi\vmware.txt
Сценарий VB для отображения значений Const HKEY_CURRENT_USER = &H80000001 Установить wmiLocator=CreateObject("WbemScripting.SWbemLocator") Установить wmiNameSpace = wmiLocator.ConnectServer(".", "Root\default") Установить objRegrovSet =PNPG = ") = WGPG" =) WMI "Летучие среда" LRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, SPATH, "ViewClien_Machine_Name", vMachine) LRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, SPATH, "ViewClien_IP_Address", ПСИ) LRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, SPATH, "ViewClien_MAC_Address", vMAC) msgbox "Имя удаленного устройства -" & vMachine & " @ " & vIP & " (" & vMAC & ") "
он хотел, чтобы я упомянул, что пакетный файл действительно запускается, и я вижу, как он начинает обратный отсчет при повторном подключении, но он не захватывает значения реестра.
1 ответ
Мне удалось получить исходный IP-адрес, имя пользователя и время в одном текстовом файле КАЖДЫЙ раз, когда пользователь подключается с помощью клиента View к виртуальной машине Windows, независимо от того, выходят они из системы или нет. Я нашел объект групповой политики в шаблонах View, который называется CommandtoRunOnConnect и CommandtoRunOnReConnect. Используя их, мы можем выполнить скрипт, который извлекает информацию из View и использует их по своему вкусу. Поскольку этот объект групповой политики не выполняет сценарий входа в систему, я считаю, что он выполняется с использованием локальной учетной записи SYSTEM.
Хитрость заключалась в том, чтобы использовать переменные среды вместо ключей реестра. Я полагаю, потому что скрипт должен был запускаться при подключении как локальная учетная запись SYSTEM, ключи для пользователя были недоступны. Вместо этого скрипт просто говорит%Viewclient_IP_Address% и все. Не стесняйтесь размещать это на форуме пользователя. Документация для этого не упоминается, потому что переменные не были записаны по умолчанию в 4.6.
Спасибо за помощь