2

У меня есть вопрос, который, я уверен, имеет простое решение, но он ускользает от меня.

На рисунке изображен сервер, которым пользуются несколько человек.
Все они используют одну и ту же учетную запись для входа в систему.
Единственный способ разграничить сессии - по имени хоста или IP.

Итак - Как увидеть на удаленном компьютере имя хоста подключенного клиента?

Например, я RDP на сервер 256.12.13.1 с моего IP 256.12.13.7 .
Есть ли команда, которую я мог бы запустить на сервере в этом удаленном сеансе, который выведет 256.12.13.7?

Я спрашиваю, потому что было бы хорошо, если бы эта команда выводила 256.12.13.9 когда человек подключается с этого другого IP.

Так что я могу включить его в автозагрузку и всякий раз, когда кто-нибудь подключает скрипт, он запускается так:

gethostname >> rdplog.txt<br>
date /t >> rdplog.txt <br>
time /t >> rdplog.txt

Так что это может в основном равняться очень простому логину входа в систему.

3 ответа3

6

Вы можете написать пакетный скрипт, например:

netstat -na | find "3389" | find "ESTABLISHED" >> C:\path_to_rdplog.txt
date /T >> C:\path_to_rdplog.txt
time /T >> C:\path_to_rdplog.txt
echo. >> C:\path_to_rdplog.txt
echo ----------- >> C:\path_to_rdplog.txt
echo. >> C:\path_to_rdplog.txt

Вы просто должны убедиться, что входящий пользователь имеет права на запись в C:\path_to_rdplog.txt

1

Очень старая тема, но все равно. Мы использовали для проверки переменной среды CLIENTNAME, которая установлена в сеансе RDP. У нас было старое приложение, которое не могло легко использовать Windows API или Powershell, и проверило эту переменную среды. Эта переменная содержит имя хоста клиентского компьютера, устанавливающего соединение RDP.

1

Microsoft MVP Шей Леви создал модуль PowerShell для PSTerminalServices с командлетами служб терминалов.

Его нужно установить, его нет по умолчанию.

Я еще не использовал это, я только нашел это.

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