For et stykke tid siden postede jeg mit første script til at finde de brugere, der er logget ind på en server, og logge dem af eksternt. Det var flere år siden, og jeg tænkte, at jeg ville tage en anden crack på det for at forsøge at forbedre hastigheden, forbedre formateringen og tilføje nogle dedikerede switches med en smule mere fleksibilitet. Endelig ønskede jeg at ændre det grimme, ukonventionelle navn til noget mere Powershell-godkendt. Jeg kalder denne nye funktion Get Logged In Users.
Den underliggende struktur kommer stadig til at bruge query session, så det er ikke ændret. Det, der er ændret, er, at vi nu kan angive en bestemt bruger eller finde frem til, hvor en bruger er logget på i et domæne. En anden bemærkning er muligheden for at logge dem af ved hjælp af en simpel switch, så det kan helt sikkert være praktisk, hvis du kontrollerer en log af systemer.
Get Logged In Users Using Powershell
Som jeg kigger tilbage, ved jeg ikke, hvorfor jeg tilføjede ActiveDirectory-modulet og fik det til at køre som en administrator. Det er simpelthen ikke nødvendigt og ikke påkrævet for at køre denne funktion. Jeg vil dog stærkt anbefale, at du kører dette på en Windows 10-maskine eller Server 2016 og senere med Powershell 5, for lad os se det i øjnene, vi er i 2020.
Parameters
-ComputerName
Description: Dette angiver det ComputerName, som du ønsker at kontrollere. Hvis der ikke er angivet noget ComputerName, kontrolleres den lokale computer.
-UserName
Beskrivelse:
-LogOff
Beskrivelse: Hvis det angivne brugernavn findes logget ind på en maskine, vises det i output.
-LogOff
Beskrivelse: Hvis det angivne brugernavn findes logget ind på en maskine, vises det i output: Hvis logoff-parameteren er angivet, logger den brugeren ud af computeren. Det anbefales at køre uden logoff-knappen for først at se resultaterne.
Sådan kører du Get Logged In User Powershell Script
For at køre scriptet er der et par ting, du skal gøre. Først og fremmest skal du indstille din eksekveringspolitik til RemoteSigned eller bypass. Dette er en standard ved kørsel af ethvert Powershell-script.
Dernæst skal du dot source scriptet, da det er en funktion. For at dot source scriptet gør du følgende:
- Kopier scriptet ovenfor, og gem det et vilkårligt sted. I dette eksempel gemmer jeg det i min mappe C:\_Scripts.
- I Powershell-vinduet skriver du: . .\_Scripts\Get-LoggedInUser.ps1 – Bemærk de to prikker før skråstregen.
Hent loggede brugere på fjerncomputere
Det bedste, jeg elsker ved dette script, er din mulighed for at få fat i, hvem der er logget ind på en fjerncomputer. Dette afbøder behovet for at logge fysisk ind på computeren og kontrollere på den måde. Da dette Powershell-script giver dig mulighed for at forespørge fjernservere og fjerncomputere, gør det det meget automatiserbart og meget skalerbart. Ved hjælp af dette script kan du kontrollere 1 server eller 1.000 servere, og det vil være den samme indsats for den person, der kører det. Det er fantastisk, og jeg elsker, at du kan gøre det hele fra din egen Windows 10-computer.
Du kan også meget nemt finde ud af, hvor en bruger er logget på i et domæne. Afhængigt af hvor mange maskiner du skal iterere igennem, kan det selvfølgelig tage noget tid, men det kan lade sig gøre. Her er et simpelt kodeuddrag af, hvordan du får fat i, hvor en bruger er logget ind på.
ErrorAction SilentlyContinue bruges til at undertrykke forbindelsesfejl og vise rent output
Så der har du det, en hurtig og nem løsning på et problem, som mange it-administratorer er stødt på i deres sysadmin-rejse. Jeg er godt klar over, at du også kan gøre dette via gruppepolitik, hvis du ønskede at gå den vej, eller du kan gøre dette via et eller andet GUI-værktøj, men jeg kan altid lide at få mine hænder beskidte med Powershell.