Наша группа безопасности хочет, чтобы мы начали регистрацию данных для внешнего доступа к нашей среде просмотра. Сначала мы думали, что безопасность представления будет регистрировать все исходные IP-адреса, которые являются внешними по своей природе, поэтому, если по какой-то причине произойдет вторжение, у нас будет запись об этом там.
Конечно, наш брандмауэр регистрирует всю эту информацию, но сопоставление ее для просмотра в лучшем случае отрывочно с нашей текущей реализацией.
Мы знаем, что на рабочих столах просмотра есть набор ключей в VolitateEnviroment, который содержит такие вещи, как исходный IP-адрес, имя пользователя и т. Д.
У нас есть сценарий, который при запуске в качестве сценария входа в систему, прикрепленного к учетной записи пользователя в AD, собирает информацию по мере необходимости.
Если у нас есть GPO, запускающий тот же сценарий, информация не собирается.
Нам кажется, что нам не хватает части головоломки, но мы не знаем, что именно. Если кто-то знает, что мы забываем или неправильно конфигурируем, это было бы здорово, или если у вас есть лучший способ сбора IP-адресов внешнего источника для просмотра, нас это тоже заинтересует.
Спасибо,
ИЗМЕНИТЬ КОД
Пакетный сценарий для дампа в текстовый файл @echo off timeout 20 echo% computername% /% username%% time%% date% >> c: \ vdi \ vmware.txt echo ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ >> c: \ vdi \ vmware.txt reg query "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") Установить objRegistry = sGmiName = wGmiName "Летучие среда" 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 & ")"
он хотел, чтобы я упомянул, что командный файл действительно запускается, и я вижу, как он отсчитывает обратный отсчет, когда я повторно подключаюсь, но он не захватывает значения реестра.
Мне удалось получить исходный IP-адрес, имя пользователя и время в одном текстовом файле КАЖДЫЙ раз, когда пользователь подключается с помощью клиента View к виртуальной машине Windows, независимо от того, выходит ли он из системы или нет. В шаблонах представления я нашел объект групповой политики под названием CommandtoRunOnConnect и CommandtoRunOnReConnect. Используя их, мы можем выполнить сценарий, который извлекает информацию из представления и использует их по своему усмотрению. Поскольку этот объект групповой политики не выполняет сценарий входа в систему, я считаю, что он выполняется с использованием локальной учетной записи SYSTEM.
Хитрость заключалась в использовании переменных среды вместо ключей реестра. Я считаю, что из-за того, что сценарий должен был запускаться при подключении в качестве локальной учетной записи SYSTEM, ключи для пользователя были недоступны. Вместо этого сценарий просто говорит% Viewclient_IP_Address% и все. Не стесняйтесь размещать это на форуме пользователей. В документации об этом не упоминается, потому что переменные не были записаны по умолчанию в 4.6.
Спасибо за помощь