Доброго времени суток!

Относительно давно, была задача, выводить логины пользователей, подключившихся извне к своим рабочим местам, или к ферме терминалов.

Архитектура у нас была стандартная, Шлюз удаленных рабочих столов (далее RDGW) Брокер (далее RDCB) и несколько терминальных серверов (далее RDSH).

Для начала был написан на ps простенький скрипт, выводивший необходимые значения
c:\ps\rdclients.ps1

Get-WmiObject -class "Win32_TSGatewayConnection" -namespace "root\cimv2\TerminalServices" -ComputerName localhost -Authentication 6 | Select UserName,ConnectedResource

Начало вроде положено, осталось выдать эти значения на отдельный монитор в СБ.

Было принято решение использовать замечательный продукт The Dude, к сожалению они перестали выпускать свежие версии серверной части для windows но для моей задачи вполне хватало и старой.

Итак, качаем последнюю версию под windows dude-install-4.0beta3.exe

К сожалению на официальном сайте эту версию уже не скачать… поэтому гуглим, находим качаем.

Если же у кого есть Mikrotik c поддержкой dude, или виртуалка с microtik, то также можно воспользоватся.

Как установить the Dude расказывать не стану, там все просто, и материалов на эту тему очень много.

Dude умеет общаться с windows по протоколу SNMP им и воспользуемся.

Для того чтоб прикрутить вывод скрипта в кастомный адрес OID, воспользуемся утилитой snmptools2, скачать ее можно erwan.labalec.fr/snmptools/snmptools2.zip.

Распаковываем и настраиваем ее под собственные нужды.

Пример regagent.reg файла

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]
"snmptools"="SOFTWARE\\snmptools\\CurrentVersion"

[HKEY_LOCAL_MACHINE\SOFTWARE\snmptools\currentversion]
"Pathname"="%systemroot%\\snmptools.dll"
"debug"="1"
"counters"="%systemroot%\\counters.ini"
"oid"="1.3.6.1.4.1.15"

Пример counters.ini файла

;this file is optional
;you can define here the hardcoded oid for specific ms counters

[1.3.6.1.4.1.15.1]
type=exec
counter=powershell c:\windows\rdclients.ps1

;you need a pseudo end of file so that snmp_get_next does not end with a no_such_name error on last oid
[1.3.6.1.4.1.15.9999]
type=string
counter=EOF

На RDGW необходимо установить компонент snmp, и предварительно его настроить.
Заходим в службы, служба snmp, свойства, безопасность, добавляем сообщество например public и добавляем узел, от куда будут идти snmp запросы копируем файлы snmptools2.dll и counters.ini в c:\windows, вносим в реестр значений файла regagent.reg

Перезапускаем службу snmp.

Теперь заходим в the dude, добавляем новое устройство, вносим адрес сервера RDGW
нажимаем правой кнопкой на устройство.

Переходим в вид, в поле метка прописываем:

[oid("1.3.6.1.4.1.15.1")]

в английской версии это Apperance — Label.

Вот так не сложно можно вывести в dude любое необходимое значение из windows.