Kérjen jelszó-visszaállítási információkat a felhasználók számára a Windows PowerShell parancsfájl segítségével

Be kell vallanom, hogy az utóbbi időben nagyon lenyűgöztem a PowerShell-t, és bár semmiképpen sem vagyok rendkívül jó, sikerült összeállítanom néhány hasznos szkriptet. A PowerShell tanulása közben találtam néhány megoldandó problémát, egyet. amiben meghatározható, hogy a felhasználó mikor változtatta meg utoljára a jelszavát, és hány napig telt el a jelszó újbóli megváltoztatása. Lehet, hogy nem találja hasznosnak ezt a szkriptet, de szemlélteti azt a testreszabási módot, amelyet a PowerShell segítségével elvégezhet a saját által választott feladatok elvégzéséhez.

Megjegyzés: Ennek a függvénynek a használata feltételezi, hogy vannak olyan fiókok, amelyek jelszavai lejárnak, bár a kimutatott fiókoknak is vannak érvénytelen jelszavai. Követelmény: Az Active Directory modult importálnia kell a PowerShell-munkamenetbe az import-modul aktív könyvtárának futtatásával, hogy ez a funkció megfelelően működjön.

Elkezdeni

A probléma akkor kezdődött, amikor egy munkatársunk megkérdezte, hogy mikor állítják vissza a felhasználói fiók jelszavát. Az Active Directory nem adja meg pontosan ezeket az információkat, hogy láthassa, ami általában jó dolog. Ez jó alkalom volt arra, hogy kiderüljön, segíthet-e a PowerShell.

Funkció, szkript vagy interaktív parancssor

Bár ezek a módszerek működni fognak, és akár ugyanazt a kódot használják, gondoltam, hogy ez olyasvalami lehet, amelyet újra felhasználnék, ezért úgy döntöttem, hogy olyan függvényt hozunk létre, amely inkább egy cmdlet-hez hasonlóan viselkedik, amelyet profilszkriptbe is be lehet tölteni (de ez a rész egy újabb üzenet).

 Get-pwdset függvény { 
 Param (paraméter (kötelező = $ true) string $ user) 

A fenti kódban a get-pwdset függvényt a szükséges $ user paraméterrel definiáljuk, mint karakterláncot.

A függvény következő szakasza egy változót határoz meg, amely egy Active Directory felhasználói objektumot tárol, a megadott tulajdonságokkal a passwordneverexpires és a passwordlastset számára .

 $ use = get-aduser $ user -properties passwordlastset, passwordneverexpires 

A következő szakaszban úgy döntöttem, hogy ellenőrizze azokat a fiókokat, amelyek nem érvénytelen jelszavakkal rendelkeznek. Ennek célja az volt, hogy elkerülje a hibákat, ha olyan fiókokkal foglalkozik, amelyek még nem járnak le.

 If ($ use.passwordneverexpires -eq $ true) 
 { 
 write-host $ user "utoljára állította be jelszavát a" $ use.passwordlastset "oldalon, ennek a fióknak egy érvénytelen jelszava van. 
 } 

Ha a funkcióhoz átadott fióknak nincs lejárati jelszava, akkor az utolsó jelszó beállított dátum jelenik meg, és egy üzenet jelenik meg arról, hogy a fiók sárga jelzéssel rendelkezik a lejáró jelszóval.

 Más 
 { 
 $ til = ((datetime :: FromFileTime ((get-aduser $ user -properties "msDS-UserPasswordExpiryTimeComputed"). "msDS-UserPasswordExpiryTimeComputed")) - (get-date)). days 
 if ($ til-tól "5" -ig) 
 { 
 write-host $ user "utoljára beállította a jelszavát a" $ use.passwordlastset "-re, ez ismét" $ til "napokban hatályát veszti - előtér szín piros 
 } 
 más 
 { 
 write-host $ user "utoljára beállította a jelszavát a" $ use.passwordlastset "-re, ez ismét" $ til "napokban hatályát veszti - előtér szín zöld 
 } 

Ez a funkció lehetővé teszi a következő get-pwdset igazolvány megadását, hogy a Powershell ellenőrizze az Active Directory-t, hogy meghatározza, hogy az juser objektum mikor állította be utoljára a jelszavát, és hány nap van a jelszó lejártáig. Az alábbiakban látható egy példa az A. ábrán.

A ábra

A felhasználói teszthez futó get-pwdset funkció (kattintson a nagyításhoz)

Remélhetőleg ez a kis funkció hasznos lesz az Ön számára, ha a jelszó lejártának megtalálása olyan probléma, amelyet meg kell oldani.

© Copyright 2021 | mobilegn.com