Jossain vaiheessa lähetin alkuperäisen komentosarjani, jolla löydetään palvelimelle kirjautuneet käyttäjät ja kirjaudutaan pois palvelimelta etänä. Se oli useita vuosia sitten, ja ajattelin, että ottaisin sen uudelleen ja yrittäisin parantaa nopeutta, parantaa muotoilua ja lisätä joitain omia kytkimiä, joilla on hieman enemmän joustavuutta. Lopuksi halusin vaihtaa tuon ruman, epätavanomaisen nimen johonkin Powershellin hyväksymään nimeen. Kutsun tätä uutta toimintoa nimellä Get Logged In Users.
Perusrakenne käyttää edelleen kyselyistuntoa, joten se ei ole muuttunut. Se, mikä on muuttunut, on se, että nyt voimme määrittää tietyn käyttäjän tai etsiä, missä käyttäjä on kirjautuneena toimialueella. Toinen huomio on kyky kirjautua ulos yksinkertaisella kytkimellä, joten se voi varmasti olla kätevä, jos tarkistat järjestelmien lokia.
Get Logged In Users Using Powershell
Katsomalla taaksepäin en tiedä, miksi lisäsin ActiveDirectory-moduulin ja laitoin sen toimimaan järjestelmänvalvojana. Sitä ei yksinkertaisesti tarvita eikä vaadita tämän toiminnon suorittamiseen. Suosittelen kuitenkin lämpimästi, että suoritat tämän Windows 10 -koneella tai Server 2016:lla ja uudemmilla Powershell 5:llä, koska no myönnettäköön, että elämme vuotta 2020.
Parametrit
-ComputerName
Description: Tässä määritetään ComputerName, jonka haluat tarkistaa. Jos ComputerNamea ei määritetä, tarkistetaan paikallinen tietokone.
-UserName
Description: Jos määritetty käyttäjätunnus löytyy kirjautuneena koneeseen, se näyttää sen tulosteessa.
-LogOff
Description: Jos logoff-parametri on määritetty, se kirjaa käyttäjän ulos tietokoneesta. On suositeltavaa ajaa ilman logoff-kytkintä, jotta tuloksia voidaan tarkastella ensin.
How To Run Get Logged In User Powershell Script
Skriptin suorittamiseksi on tehtävä pari asiaa. Ensinnäkin sinun on asetettava suorituskäytännöksi RemoteSigned tai bypass. Tämä on vakio minkä tahansa Powershell-skriptin suorittamisessa.
Seuraavaksi sinun täytyy pistekoodata skripti, koska se on funktio. Voit tehdä skriptin dot source -lähteen seuraavasti:
- Kopioi yllä oleva skripti ja tallenna se mihin tahansa paikkaan. Tässä esimerkissä tallennan sen C:\_Scripts-kansioon.
- Powershell-ikkunassa kirjoita: . .\_Scripts\Get-LoggedInUser.ps1 – Huomaa kaksi pistettä ennen backslash-viivaa.
Löydä kirjautuneet käyttäjät etäkoneilla
Parasta, mitä rakastan tässä skriptissä, on kykysi saada selville, ketkä ovat kirjautuneena etäkoneelle. Tämä lieventää tarvetta kirjautua fyysisesti tietokoneeseen ja tarkistaa se siten. Koska tämän Powershell-skriptin avulla voit kysyä etäpalvelimia ja -tietokoneita, se tekee siitä erittäin automatisoitavan ja hyvin skaalautuvan. Tämän komentosarjan avulla voit tarkistaa yhden palvelimen tai 1000 palvelinta, ja se on yhtä työlästä komentosarjaa käyttävälle henkilölle. Se on mahtavaa ja rakastan sitä, että voit tehdä sen kaiken omalta Windows 10 -tietokoneeltasi.
Voit myös selvittää, missä käyttäjä on kirjautuneena toimialueella hyvin helposti. Riippuen siitä, kuinka monta konetta aiot iteroida läpi, se voi tietysti viedä jonkin aikaa, mutta se voidaan tehdä. Tässä on yksinkertainen koodinpätkä siitä, miten saadaan selville, missä käyttäjä on kirjautunut sisään.
ErrorAction SilentlyContinue -toimintoa käytetään tukahduttamaan yhteysvirheet ja näyttämään puhdas ulostulo
Se on siis nopea ja helppo ratkaisu ongelmaan, johon moni IT-ylläpitäjä on törmännyt sysadminin matkallaan. Olen hyvin tietoinen siitä, että voit tehdä tämän myös ryhmäkäytännön kautta, jos haluat mennä sitä reittiä, tai voit tehdä tämän jonkin GUI-työkalun kautta, mutta haluan aina liata käteni Powershellin kanssa.