Uzyskaj nazwę hosta komputera klienckiego RDP


2

Mam pytanie, które z pewnością ma proste rozwiązanie, ale wciąż mi się wymyka.

Na zdjęciu jest serwer, z którego korzysta kilka osób.
Wszyscy używają tego samego konta do logowania.
Jedynym sposobem na rozróżnienie sesji jest nazwa hosta lub adres IP.

Więc - jak zobaczyć na komputerze zdalnym podłączoną nazwę hosta klienta?

Na przykład I RDP do serwera 256.12.13.1z mojego adresu IP 256.12.13.7.
Czy istnieje polecenie, które mógłbym uruchomić na serwerze w tej zdalnej sesji, która wyświetli 256.12.13.7?

Pytam, bo byłoby dobrze, gdyby to polecenie wypisało się, 256.12.13.9gdy osoba łączy się z innego adresu IP.

Mogę więc uruchomić go i za każdym razem, gdy ktoś połączy skrypt w taki sposób, uruchomi się:

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

Może to w zasadzie być równoznaczne z bardzo prostym logiem logowania.


Teraz patrzę na PowerShell. Myślę, że to moja jedyna opcja.
extremko

2
Oczywiście niewiele osób może dyktować, w jaki sposób firma korzysta z zasobów IT, ale czy mogę zasugerować, że wiele osób korzystających z tego samego loginu jest wyjątkowo słabą praktyką bezpieczeństwa? Jeśli jesteś w stanie ulepszyć ten system, polecam go.
Myrddin Emrys

@MyrddinEmrys, masz absolutną rację. Ale nie, nie mogę dokonać zmian w systemie, tak jak jest teraz, próbowałem już :) Jednak jest to środowisko LAN i ludzie nie przechowują zbyt ważnych danych, więc jest w porządku. Jedyne, co mnie martwi, to korupcja danych, ale tutaj właśnie zaczyna się tworzenie kopii zapasowych;) Dziękuję za twoje przemyślenia, bardzo doceniane!
extremko

Odpowiedzi:


6

Możesz napisać skrypt wsadowy, taki jak:

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

Musisz tylko upewnić się, że osoba logująca się ma uprawnienia do zapisu w C: \ path_to_rdplog.txt


Dokładnie to, czego potrzebowałem! Jak mogłem dokonać takiego nadzoru? netstat! Dziękuję matrixx333, właśnie stworzyłeś mój dzień. Oczywiście edytowałem scenariusz nieco bardziej, aby lepiej odpowiadał moim potrzebom, ale pan zrobił cholerną robotę. Dziękuję Ci bardzo! :-)
extremko

1
Cieszę się, że mogłem Ci pomóc @extremko!
matrixx333

Chociaż podejrzewam, że nie dałoby to właściwej odpowiedzi, gdy wielu klientów jest podłączonych i chcesz odkryć klienta podłączonego do aktualnie aktywnej sesji.
binki

1

Microsoft MVP Shay Levy stworzył PSTerminalServicesmoduł PowerShell, który ma polecenia cmdlet usług terminalowych.

Musi zostać zainstalowany, nie ma go domyślnie.

Jeszcze go nie użyłem, właśnie go znalazłem.


Dzieki za sugestie. Nie próbowałem, ale będę :)
extremko

1

Bardzo stary wątek, ale i tak. Sprawdziliśmy zmienną środowiskową CLIENTNAME ustawioną w sesji RDP. Mieliśmy starszą aplikację, która nie mogła łatwo korzystać z Windows API lub Powershell i sprawdziliśmy tę zmienną środowiskową. Ta zmienna przechowuje nazwę hosta komputera klienta nawiązującego połączenie RDP.


Doceniam aktualizację, nawet jeśli wątek jest stary. Zmienna nazwa klienta z pewnością rozwiązałaby wtedy mój problem! Dziękuję za aktualizację!
extremko
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.