Jakiś czas temu opublikowałem mój początkowy skrypt, aby znaleźć użytkowników, którzy są zalogowani na serwerze i wylogować ich zdalnie. To było kilka lat temu i pomyślałem, że wezmę jeszcze jedno pęknięcie na to, aby spróbować poprawić prędkość, poprawić formatowanie i dodać kilka dedykowanych przełączników z nieco większą elastycznością. Na koniec chciałem zmienić tę brzydką, niekonwencjonalną nazwę na coś bardziej aprobowanego przez Powershell. Nazwałem tę nową funkcję Get Logged In Users.

Podstawową strukturą nadal będzie użycie sesji zapytań, więc to się nie zmieniło. To co się zmieniło, to teraz możemy określić konkretnego użytkownika lub znaleźć gdzie jest on zalogowany w domenie. Kolejna uwaga to możliwość wylogowania ich za pomocą prostego przełącznika, więc to zdecydowanie może się przydać jeśli sprawdzasz logi systemów.

Get Logged In Users Using Powershell

Patrząc wstecz nie wiem dlaczego dodałem moduł ActiveDirectory i sprawiłem, że działa on jako administrator. To po prostu nie jest potrzebne i nie jest wymagane do uruchomienia tej funkcji. Jednak bardzo polecam uruchomienie tego na maszynie z systemem Windows 10 lub Server 2016 i później z Powershell 5, ponieważ cóż, spójrzmy prawdzie w oczy, jesteśmy w 2020 roku.

Parametry

-ComputerName

Opis: To określi ComputerName, który chciałbyś sprawdzić. Jeśli nie zostanie podana nazwa komputera, zostanie sprawdzony komputer lokalny.

-UserName

Opis: Jeśli podana nazwa użytkownika zostanie znaleziona zalogowana do maszyny, wyświetli ją na wyjściu.

-LogOff

Opis: Jeśli podany jest parametr logoff, spowoduje wylogowanie użytkownika z komputera. Zalecane jest uruchomienie bez przełącznika logoff, aby najpierw zobaczyć wyniki.

How To Run Get Logged In User Powershell Script

Aby uruchomić skrypt, należy zrobić kilka rzeczy. Po pierwsze i najważniejsze, musisz ustawić swoją politykę wykonania na RemoteSigned lub bypass. Jest to standard przy uruchamianiu dowolnego skryptu Powershell.

Następnie musisz wykonać dot source skryptu, ponieważ jest to funkcja. Aby wykonać dot source skryptu wykonaj następujące czynności:

  • Kopiuj powyższy skrypt i zapisz go w dowolnym miejscu. W tym przykładzie zapiszę go w folderze C:\_Scripts.
  • W oknie Powershell wpisz: . .\_Scripts\Get-LoggedInUser.ps1 – Zwróć uwagę na dwie kropki przed odwrotnym ukośnikiem.

Get Logged On Users On Remote Computers

Najlepszą rzeczą, jaką kocham w tym skrypcie, jest możliwość uzyskania informacji o tym, kto jest zalogowany na zdalnym komputerze. Zmniejsza to potrzebę fizycznego logowania się do komputera i sprawdzania w ten sposób. Ponieważ ten skrypt Powershell pozwala na odpytywanie zdalnych serwerów i komputerów, czyni go to wysoce zautomatyzowanym i bardzo skalowalnym. Używając tego skryptu możesz sprawdzić 1 serwer lub 1,000 serwerów i będzie to taka sama ilość wysiłku dla osoby, która go uruchamia. To jest niesamowite i uwielbiam to, że możesz to wszystko zrobić z własnego komputera z systemem Windows 10.

Możesz również znaleźć, gdzie użytkownik jest zalogowany w domenie bardzo łatwo. W zależności od tego, ile maszyn zamierzasz iterować przez, może to oczywiście zająć trochę czasu, ale można to zrobić. Oto prosty wycinek kodu, jak uzyskać informację, gdzie użytkownik jest zalogowany.

ErrorAction SilentlyContinue jest używana do tłumienia błędów połączenia i wyświetlania czystych danych wyjściowych

Więc masz to, szybkie i łatwe rozwiązanie problemu, na który wielu administratorów IT natknęło się w swojej podróży sysadmina. Jestem świadomy, że możesz to również zrobić poprzez politykę grupy, jeśli chcesz iść tą drogą, lub możesz to zrobić poprzez jakieś narzędzie GUI, ale ja zawsze lubię brudzić sobie ręce Powershellem.

Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.