Få informasjon om tilbakestilling av passord for brukere med Windows PowerShell-skript

Jeg må innrømme at jeg har vært ganske fascinert av PowerShell i det siste, og selv om jeg på ingen måte er ekstremt god på det, har jeg klart å sette sammen noen nyttige scripting .. Mens jeg lærte PowerShell, fant jeg noen problemer å løse, en hvorav hvordan man kan bestemme når en bruker sist endret passord og antall dager til passordet må endres igjen. Du kan kanskje ikke finne dette spesifikke skriptet nyttig, men det illustrerer typen tilpasning du kan gjøre med PowerShell for å utføre oppgaver du selv velger.

Merk: Ved å bruke denne funksjonen forutsettes det at det er kontoer med passord utløper, selv om det rapporterer om kontoer som også har passord som ikke går ut. Krav: Du må importere Active Directory-modulen til PowerShell-økten ved å kjøre importmodul-aktiveringsveiledning for at denne funksjonen skal fungere ordentlig.

Starter

Problemet jeg hadde startet da en kollega spurte om når et passord for en brukerkonto ble tilbakestilt. Active Directory legger ikke akkurat denne informasjonen ut for deg å se, noe som vanligvis er bra. Dette var en god mulighet til å se om PowerShell kunne hjelpe.

Funksjon, skript eller interaktiv kommandolinje

Selv om alle disse metodene vil fungere og til og med bruke den samme koden, tenkte jeg at dette kan være noe jeg ville bruke på nytt, så jeg valgte å lage en funksjon for å oppføre seg mer som en cmdlet, som også kan lastes inn i et profilskript (men det del er et annet innlegg).

 Funksjon get-pwdset { 
 Param (parameter (obligatorisk = $ true) streng $ bruker) 

I koden over er funksjonen get-pwdset definert med den nødvendige parameteren $ bruker definert som en streng.

Den neste delen av funksjonen vil definere en variabel som skal inneholde et Active Directory-brukerobjekt med spesifikke egenskaper for passordforsikring og passordlastsett .

 $ use = get-aduser $ user-eiendommer passwordlastset, passord gliser ikke 

I den neste delen bestemte jeg meg for å se etter kontoer som ikke har utløpt passord. Dette var for å forhindre feil ved behandling av kontoer som ikke utløper.

 Hvis ($ use.passwordneverexpires-lik $ true) 
 { 
 skriver-vert $ bruker "satte passordet sitt sist på" $ use.passwordlastset ". Denne kontoen har et ikke-utløpende passord" -grunnen farge gul 
 } 

Hvis kontoen som er gitt til funksjonen har et ikke-utløpende passord, vises den siste datoen for innstilling av passord og en melding om at kontoen har et passord som ikke går ut i gult.

 Ellers 
 { 
 $ til = ((datetime :: FromFileTime ((get-aduser $ user-eiendommer "msDS-UserPasswordExpiryTimeComputed"). "msDS-UserPasswordExpiryTimeComputed")) - (get-date)). dager 
 if ($ til -lt "5") 
 { 
 skriver-vert $ bruker "satte passordet sitt sist på" $ use.passwordlastset ", det utløper igjen om" $ til "dager" -grunnen fargerød 
 } 
 ellers 
 { 
 skriver-vert $ bruker "satte passordet sitt sist på" $ use.passwordlastset ". Det utløper igjen om" $ til "dager" -grunnen farger grønn 
 } 

Denne funksjonen lar deg gå inn i følgende get-pwdset-juser for å få Powershell til å sjekke Active Directory for å bestemme når juser- objektet sist har satt passordet og hvor mange dager det er til passordet utløper. Et eksempel er vist nedenfor i figur A.

Figur A

Get-pwdset-funksjonen som kjører for brukertest (klikk for å forstørre)

Forhåpentligvis vil denne lille funksjonen være nyttig for deg hvis å finne utløp av passord er et problem du trenger å løse.

© Copyright 2021 | pepebotifarra.com