Generiranje slučajnih lozinki s programom PowerShell

Prilikom stvaranja korisničkih računa u Active Directoryu, administrator obično postavlja svaki račun jedinstvenom početnom zaporkom, koja se zatim daje korisniku (obično kada se prvi put korisnik prijavi, potrebno mu je promijeniti lozinku pomoću atributa AD userAccountControl "Korisnik mora promijeniti lozinku pri sljedećoj prijavi"). jer ne želite svaki put izmišljati novu slučajnu lozinku za korisnike ili koristite PowerShell skriptu za stvaranje korisničkih računa u AD-u, možete automatizirati generiranje jedinstvenih korisničkih lozinki pomoću PowerShell-a.

Da biste stvorili lozinku, možete koristiti metodu GeneratePassword iz klase .Net System.Web.Security.Membership. Generiramo složenu lozinku pomoću naredbi:

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

Metoda GeneratePassword omogućuje generiranje lozinke duge do 128 znakova. Metoda uzima dva parametra kao ulaz - duljinu lozinke (u mom slučaju) 10 znakova) i minimalni broj posebnih alfanumeričkih posebnih znakova, poput !, -, $, &, @, #,% itd. (2 poseban lik). Kao što vidite, u mom slučaju generirana je lozinka tm-qZl! uQv prema danim argumentima.

Nepoželjno je koristiti više od jednog ili dva posebna znaka u lozinci, u protivnom upišite takvu lozinku _ ! $. R% 2 * [ korisnik će biti nerealan.

Stoga se pri stvaranju novih korisnika pomoću PowerShell cmdleta može upotrebljavati New-ADUser s jedinstvenom lozinkom sa sljedećim naredbama:

Add-Type -AssemblyName System.Web
New-ADUser -Name "Anton Semenov" -GivenName "Semenov" -Prezime "Anton" -SamAccountName "asemenov" -UserPrincipalName "[email protected]" -Path "OU = Korisnici, OU = MSK, DC = winitpro, DC = com "-AccountPassword ([System.Web.Security.Membership] :: GeneratePassword (10,2)) -Enabled $ true

Također možete koristiti metodu GeneratePassword kada resetirate lozinku korisnika Active Directory-a..

Ako vaša organizacija koristi jaka pravila o zaporkama, u nekim slučajevima lozinka generirana metodom GeneratePassword možda ne zadovoljava zahtjeve pravila o zaporkama vaše domene. Prije nego što korisniku dodijelite lozinku, možete provjeriti je li u skladu s pravilima složenosti zaporke. Naravno, nema smisla provjeravati duljinu i nepostojanje korisničke prijave u zaporci. Možete provjeriti zadovoljava li složenost lozinke najmanje 3 zahtjeva politike. Lozinka mora zadovoljiti zahtjeve za složenost (zaporka mora sadržavati 3 vrste znakova s ​​popisa: brojevi, mala slova, velika slova i posebni znakovi). Ako lozinka nije prošla provjeru, morate je ponovo generirati.

Dobio sam takvu funkciju PowerShell koja generira novu lozinku i provjerava usklađenost sa zahtjevima složenosti:

Funkcija Generiraj-Složeno-Lozinka-Domena ([Parameter (Obvezno = $ true)] [int] $ PassLenght)

Add-Type -AssemblyName System.Web
$ zahtjevaPassed = $ false
učiniti
$ newPassword = [System.Web.Security.Membership] :: StvoriPassword ($ PassLenght, 1)
If (($ newPassword -cmatch "[A-Z \ p Lu \ s]") "
-i ($ newPassword -cmatch "[a-z \ p Ll \ s]") '
-i ($ newPassword -match "[\ d]") "
-i ($ newPassword -match "[^ \ w]")
)

$ zahtjevaPassed = $ True

Dok je ($ zahtjevaPassed -eq $ false)
vrati $ newPassword

Da biste generirali lozinku s 4 znaka s najmanje jednim posebnim znakom, pokrenite naredbu:

Stvori-složena-lozinka domene (4)

Ova skripta uvijek će stvoriti lozinku koja odgovara kriterijima složenosti domene..