2

Я использую BgInfo на сервере Windows, к которому пользователи подключаются удаленно через RDP. BgInfo позволяет создавать пользовательские элементы на основе запросов WMI. Я хотел бы показать локальное имя пользователя или IP-адрес. Существует ли класс WMI, содержащий имя локального хоста удаленно подключенного пользователя? Иначе, есть ли еще один шаг в BgInfo, чтобы получить эту информацию?

2 ответа2

2

Не решение WMI, но проще: если вы выполняете следующий скрипт на сервере при подключении по RDP, вы получите имя хоста удаленного компьютера, подключенного по RDP

@echo off

echo %CLIENTNAME%

exit

На самом деле вам не нужен скрипт, так как bginfo позволяет использовать настраиваемое поле. Перейдите в пользовательские поля-> добавить новое поле, выберите Environment variable и добавьте переменную = CLIENTNAME

0

Насколько я знаю, WMI не может этого сделать. Вам нужно будет использовать Win32 API, например, в PowerShell, и напрямую вызывать функцию WTSQuerySessionInformation , находящуюся внутри wtsapi32.dll , используя параметры:

hServer = WTS_CURRENT_SERVER_HANDLE (null or 0)
SessionId = WTS_CURRENT_SESSION (-1)

Вы можете найти работающий пример PowerShell для вызова WTSQuerySessionInformation в этом ответе о сбое сервера, с которого следует начать.

Элемент, который вы хотите получить, - это WTSClientName из перечисления _WTS_INFO_CLASS, содержащее « Строку с нулевым символом в конце, содержащую имя клиента», что означает имя клиентского компьютера. Как его получить также продемонстрировано в приведенном выше примере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .