При разговоре с пользователем системному администратору очень удобно уже владеть хоть какой-то информацией о его компьютере, потому как пользователь не всегда может понятно объяснить появившуюся проблему. Узнать сетевые настройки у пользователя Windows не так уж сложно, их можно вывести на рабочий стол: имя и IP-адрес машины, IP-адрес DHCP и DNS–сервера, MAC-адрес, мощность процессора, количество памяти, версию ОС, загрузку дисков, имя домена, маску подсети, логин пользователя и многое другое. Такие данные поможет вывести уже готовая программа BGInfo [https://technet.microsoft.com/en-us/sysinternals/bb897557.aspx?f=255&MSPPError=-2147217396] от Sysinternals [https://technet.microsoft.com/ru-ru/sysinternals?f=255&MSPPError=-2147217396].
Для отображения информации на рабочем столе компьютеров всех пользователей распространим данную программу с помощью групповых политик. Для этого программу переписываем в общедоступную папку, например, NETLOGON на контроллере домена. Туда же помещаем командный файл bginfo.cmd, в котором прописываем путь к программе: \\<server>\netlogon\bginfo\bginfo.exe \\<server>\netlogon\bginfo\config.bgi /timer:0 /nolicprompt.
Далее создаём групповую политику, которая позволит распространить данную программу на компьютеры сотрудников. Для этого запускаем Управление групповой политикой, заходим в Конфигурация пользователя->Политики->Конфигурация Windows->Сценарии->Вход в систему, жмём кнопку Добавить и указываем место расположения командного файла: \\b-dc01\NETLOGON\BGInfo\Bginfo.cmd. Подключаем политику к нужному контейнеру. После перезагрузки рабочих станций будут отображаться все необходимые данные (см. рис. 1).
Рисунок 1. Вывод системной информации.
В программе BgInfo стандартной информации много, но всю ее выводить бессмысленно, поэтому мы произведём кастомные настройки. Сначала отобразим логин пользователя и имя компьютера. Для этого удаляем все ненужные поля и заголовки, нужные заголовки переименовываем. Должно получиться так (см. рис. 2):
Имя ПК: <Host Name>
Имя пользователя: <User Name>
Рисунок 2. Минимум информации.
Теперь выведем на экран IP-адрес. Если использовать стандартное поле IP address, то на экране будет выводится информация со всех сетевых карт. В нашем случае это не нужно. Наши компьютеры подключены по кабелю и только от одной сетевой карты нужно знать IP-адрес. В этом случае воспользуемся wmi-запросом. Для этого нажимаем Custom->New, выбираем WMI Query, в выпадающем поле слева находим wmi-класс Win32_NetworkAdapterConfiguration,а в правом выпадающем поле – IPaddress, и нажимаем кнопку Evaluate для получения результата (см. рис. 3).
Рисунок 3. Написание wmi-запроса.
Мы получили слишком много лишней информации. Теперь ее нам нужно выбрать и использовать только полезную часть. Для этого в запрос добавим один параметр - IPConnectionMetric=35, который позволит оставить только нужный нам IP-адрес. WMI-запрос будет выглядеть так:
SELECT IPAddress
FROM Win32_NetworkAdapterConfiguration
Where IPConnectionMetric=35
Следующим шагом мы добавим информацию о пользователе в Active Directory, а потом её вычитаем. Например, запишем название отдела в поле Описание – “ИТ”. В стандартном списке wmi-классов BgInfo не содержит класса по работе с Active Directory, поэтому нам придётся написать vbs-скрипт, чтобы вычитать поле Описание (Description) из учётной записи пользователя:
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
usrDescript = objUser.description
Echo usrDescript
Далее заходим в кастомные настройки, выбираем VB Script file, указываем на файл со скриптом (см. рис. 4).
Рисунок 4. Подключение VBS-файла.
Применим почти такой же скрипт для поля Описание (Description) из учётной записи компьютера. В это поле будем заносить инвентарный номер компьютера.
Set objSysInfo = CreateObject("ADSystemInfo")
Set objComp = GetObject("LDAP://" & objSysInfo.ComputerName)
compDescript = objComp.description
Echo objComp.description
Подключаем файл, обновляем групповые политики и смотрим результат на рисунке 5.
Рисунок 5. Окончательный результат.
КОММЕНТАРИИ - 0