При разговоре с пользователем системному администратору очень удобно уже владеть хоть какой-то информацией о его компьютере, потому как пользователь не всегда может понятно объяснить появившуюся проблему. Узнать сетевые настройки у пользователя 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. Окончательный результат.