Véletlenszerű jelszavak előállítása a PowerShell használatával

Amikor felhasználói fiókokat hoz létre az Active Directory-ban, a rendszergazda általában minden egyes fiókhoz egyedi kezdeti jelszót állít be, amelyet ezután közöl a felhasználóval (általában amikor a felhasználó először jelentkezik be, ezt a jelszót meg kell változtatnia az AD userAccountControl attribútum „A felhasználónak meg kell változtatnia a jelszót a következő bejelentkezéskor” opcióval). mert nem akarja minden alkalommal új véletlenszerű jelszót kitalálni a felhasználók számára, vagy ha a PowerShell parancsfájlt használ felhasználói fiókok létrehozásához AD-ben, automatizálhatja az egyedi felhasználói jelszavak létrehozását a PowerShell használatával.

Jelszó létrehozásához használhatja a módszert GeneratePassword a System.Web.Security.Membership .Net osztályából. Komplex jelszót állítunk elő a következő parancsokkal:

Add-Type -AssemblyName System.Web
[System.Web.Security.Membership] :: GeneratePassword (10.2)

A GeneratePassword módszer lehetővé teszi legfeljebb 128 karakter hosszú jelszó generálását. A módszer két paramétert vesz bemenetként - a jelszó hosszát (az én esetemben 10 karakterek) és a nem alfanumerikus speciális karakterek minimális száma, mint például!, -, $, &, @, #,% stb. (2 különleges karakter). Mint láthatja, az én esetemben egy jelszót generáltunk tm-qZl! uQv az adott érvek szerint.

Nem kívánatos, hogy egy vagy két speciális karaktert használjon a jelszóban, különben írja be az ilyen jelszót _ ! $. R% 2 * [ a felhasználó irreális lesz.

Ezért, amikor új felhasználókat hoz létre a PowerShell-parancsmag segítségével, az egyedi jelszóval ellátott New-ADUser a következő parancsokkal használható:

Add-Type -AssemblyName System.Web
Új-ADUser -Név "Anton Semenov" -GivenName "Semenov" -Felnév "Anton" -SamAccountName "asemenov" -UserPrincipalName "[email protected]" - Útvonal "OU = Felhasználók, OU = MSK, DC = winitpro, DC = com "-AccountPassword ([System.Web.Security.Membership] :: GeneratePassword (10,2)) -Enabled $ true

A GeneratePassword módszert akkor is használhatja, amikor visszaállítja az Active Directory felhasználói jelszavát..

Ha a szervezet szigorú jelszó-házirendeket alkalmaz, bizonyos esetekben a GeneratePassword módszer által generált jelszó nem felel meg a domain jelszó házirendjének. Mielőtt jelszót rendelne egy felhasználónak, ellenőrizheti, hogy megfelel-e a jelszó összetettségére vonatkozó irányelveknek. Természetesen nincs értelme annak hosszúságát és a jelszóban való felhasználói bejelentkezés hiányának ellenőrzését. Ellenőrizheti, hogy a jelszó összetettsége megfelel-e legalább 3 irányelvkövetelménynek. A jelszónak meg kell felelnie a bonyolultsági követelményeknek (a jelszónak három típusú karaktert kell tartalmaznia a listából: számok, kisbetűk, nagybetűk és speciális karakterek). Ha a jelszó nem hajtotta végre az ellenőrzést, akkor újra el kell készítenie.

Kaptam egy olyan PowerShell funkciót, amely új jelszót generál és ellenőrzi a komplexitás követelményeinek való megfelelést:

Funkció generálása-komplex domain-jelszó ([Paraméter (kötelező = $ true)] [int] $ PassLenght)

Add-Type -AssemblyName System.Web
$ követelményekPassed = $ hamis
csináld
$ newPassword = [System.Web.Security.Membership] :: GeneratePassword ($ PassLenght, 1)
If (($ newPassword -cmatch "[A-Z \ p Lu \ s]") '
-és ($ newPassword -cmatch "[a-z \ p Ll \ s]") '
-és ($ newPassword -match "[\ d]") '
-és ($ newPassword -match "[^ \ w]")
)

$ követelményekPassed = $ Igaz

Míg ($ követelményekPassed -eq $ false)
return $ newPassword

Legalább egy speciális karakterrel rendelkező 4 karakterből álló jelszó létrehozásához futtassa a következő parancsot:

Generál-komplex-domain-jelszó (4)

Ez a szkript mindig olyan jelszót állít elő, amely megfelel a domain összetettségének kritériumainak..