Jak mogę powiedzieć, kto jest aktywnie zalogowany (lokalnie lub zdalnie) na komputerze z systemem Windows 7?

14

Na moim komputerze z systemem Windows 7 chcę sprawdzić, kto jest „aktywnie” zalogowany na innym komputerze z systemem Windows 7 w mojej sieci, a nie kto ostatnio się łączył. Jak można to zrobić?

W ciągu dnia kilka osób będzie logować się zdalnie na współużytkowanym komputerze, zazwyczaj wylogowując się, kiedy będą po zakończeniu. Uwaga: użytkownicy ci mają uprawnienia administratora zarówno na swoim komputerze, jak i na tym, do którego są zdalnie podłączeni. Jeśli loguję się, gdy ktoś jest zalogowany aktywnie, mam opcję kontynuacji i uczynienia się „aktywnym” użytkownikiem, co powoduje, że poprzednie aktywne konto znajduje się w stanie rozłączonym. Byłoby miło mieć możliwość zobaczenia, kto jest aktywnie zalogowany przed dokonaniem tego wyboru.

Przeszukałem sieć i znalazłem różne rozwiązania, które informują, kto wykonał ostatnie połączenie, co nie oznacza, że ​​jest to ostatni lub „aktywny” użytkownik.

Na marginesie, w systemie Windows 7 wydaje się dziwne, że identyfikator bieżącego, aktywnego użytkownika jest wyświetlany „po” kliknięciu „Tak”, aby się zalogować. Gdy korzystaliśmy z systemu Windows XP, można było zobaczyć identyfikator bieżącego aktywnego użytkownika, zanim zdecydował się kontynuować logowanie.

Każda pomoc jest mile widziana.

pgodar
źródło

Odpowiedzi:

11

W tym celu można użyć polecenia zapytania usług terminalowych .

query session /server:remote_computer_name_here

Pamiętaj, że musisz ustawić następującą wartość rejestru na komputerze zdalnym:

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value Name: AllowRemoteRPC
Value: 1
Type: REG_DWORD

Możesz umieścić polecenie zapytania w pliku wsadowym, aby użytkownicy mogli kliknąć go dwukrotnie, aby zobaczyć, kto jest zalogowany na tym komputerze.

Patrick Seymour
źródło
10

Możesz użyć narzędzia Windows Sysinternals PSLoggedOn .

Zastosowanie: psloggedon [-] [-l] [-x] [\\ nazwa_komputera | Nazwa Użytkownika]

- Wyświetla obsługiwane opcje i jednostki miary używane dla wartości wyjściowych.

-l Wyświetla tylko loginy lokalne zamiast logowań zasobów lokalnych i sieciowych.

- x Nie pokazuj czasów logowania.

\\ nazwa_komputera Określa nazwę komputera, dla którego mają być wyświetlane informacje logowania.

nazwa użytkownika Jeśli podasz nazwę użytkownika PsLoggedOn przeszukuje sieć w poszukiwaniu komputerów, do których zalogowany jest ten użytkownik. Jest to przydatne, jeśli chcesz się upewnić, że dany użytkownik nie jest zalogowany, gdy zamierzasz zmienić konfigurację profilu użytkownika.

Josh
źródło
Warto zauważyć, że PSLoggedOn wymaga Remote Registry Serviceuruchomienia na komputerze docelowym. Ta usługa nie jest domyślnie uruchamiana.
Mówię: Przywróć Monikę
3

Inna opcja z wiersza polecenia systemu Windows 7 lub nowszego:

tasklist /s computername /fi "imagename eq explorer.exe" /v

W przypadku zapytania do zdalnego komputera może zostać wyświetlony monit o podanie poświadczeń administratora.

Spowoduje to sprawdzenie, czy explorer.exe jest uruchomiony na komputerze, a „/ v” podaje nazwę użytkownika. Jeśli komputer nie jest zalogowany, proces explorer.exe nie będzie uruchomiony. Jeśli ktoś jest zalogowany, proces explorer.exe działa w kontekście tego użytkownika.

DBraun
źródło
Jedynym (rzadkim) przypadkiem, gdy to nie zadziała, jest to, że powłoka zdalnego komputera nie jest explorer.exe. Rzadkie, ale możliwe.
Mówię: Przywróć Monikę
1

The wmicPolecenie w wierszu polecenia można odzyskać tę informację. Jednak aby klienci mogli odpowiedzieć, najpierw wymagana jest reguła zapory.

Znalazłem post na community.spiceworks.com, dzięki MacKingTosh, który wydaje się naprawiać błąd „błąd - serwer RPC jest niedostępny”.

Polecenie do uruchomienia na klientach, które powodują ten błąd, to:

netsh firewall set service remoteadmin enable

Możesz sprawdzić, czy jest to zgodne z zasadami zapory.

Podczas używania wmic, oto zestawienie parametrów, które możesz przekazać:

  • /node: - serwery, na których będzie działał alias
  • yourpcname - nazwa komputera
  • computersystem - to system komputerowy, o którym staramy się uzyskać informacje
  • get - chcemy uzyskać informacje
  • username - użytkownik zalogowany
  • model - model komputera
  • manufacturer - nazwa firmy, która wyprodukowała komputer
  • name - nazwa komputera

Kilka przykładów:

Uzyskaj nazwę użytkownika:

wmic /node: 'yourpcname' computersystem get username

Uzyskaj markę i model komputera:

wmic /node: 'yourpcname' computersystem get manufacturer, model

Zdobądź wszystkie trzy:

wmic /node: 'yourpcname' computersystem get manufacturer, model, username

Dodawanie dodatkowych pól można wykonać za pomocą przecinka i spacji:

Model, manufacturer, username, name

Powyższe przykłady dotyczą komputera zdalnego, a zapytanie jest przeprowadzane przez sieć. Jeśli polecenie jest uruchamiane lokalnie, miałoby nieco inną składnię. Na przykład:

wmic computersystem get manufacturer, model, username
Jason
źródło