Ustvarjanje naključnih gesel s programom PowerShell

Pri ustvarjanju uporabniških računov v Active Directory skrbnik običajno vsakemu računu nastavi edinstveno začetno geslo, ki ga nato dodeli uporabniku (ponavadi ko se uporabnik prvič prijavi, mora to geslo spremeniti z atributom »Uporabnik mora spremeniti geslo ob naslednji prijavi« atributa AD userAccountControl). Ker ne želite vsakič izumiti novega naključnega gesla za uporabnike ali pa za ustvarjanje uporabniških računov v AD uporabljate skript PowerShell, lahko z uporabo PowerShell samodejno ustvarite edinstvena uporabniška gesla..

Če želite ustvariti geslo, lahko uporabite metodo Ustvari besedo iz razreda .Net System.Web.Security.Membership. Z ukazi ustvarimo zapleteno geslo:

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

Metoda GeneratePassword omogoča generiranje gesla, dolgo do 128 znakov. Metoda kot vhod vzame dva parametra - dolžino gesla (v mojem primeru) 10 znakov) in minimalno število nebistrično-številčnih posebnih znakov, kot so !, -, $, &, @, #,% itd. (2 poseben značaj). Kot vidite, je v mojem primeru nastalo geslo tm-qZl! uQv glede na dane argumente.

V geslu je nezaželeno uporabljati več kot enega ali dva posebna znaka, sicer vnesite tako geslo _ ! $. R% 2 * [ uporabnik bo nerealen.

Zato lahko pri ustvarjanju novih uporabnikov z ukaznim programom PowerShell uporabimo New-ADUser z edinstvenim geslom z naslednjimi ukazi:

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

Pri ponastavitvi gesla uporabnikov Active Directory lahko uporabite tudi način GeneratePassword..

Če vaša organizacija uporablja močne pravilnike o geslih, v nekaterih primerih geslo, ustvarjeno z metodo GeneratePassword, morda ne ustreza zahtevam pravilnika o geslu vaše domene. Preden uporabniku dodelite geslo, lahko preverite, ali ustreza pravilnikom o zapletenosti gesla. Seveda ni smiselno preverjati dolžine in odsotnosti uporabniške prijave v geslu. Lahko preverite, ali zapletenost gesla ustreza vsaj 3 zahtevam pravilnika. Geslo mora izpolnjevati zahteve glede zahtevnosti (geslo mora vsebovati 3 vrste znakov s seznama: številke, male črke, velike črke in posebne črke). Če geslo ni opravilo preverjanja, ga morate znova ustvariti.

Dobil sem funkcijo PowerShell, ki ustvari novo geslo in preveri skladnost z zahtevami zahtevnosti:

Funkcija Generate-Complex-Domain-Password ([Parameter (Obvezno = $ true)] [int] $ PassLenght)

Add-Type -AssemblyName System.Web
$ zahtevnostiPassed = $ false
narediti
$ newPassword = [System.Web.Security.Membership] :: UstvariPassword ($ PassLenght, 1)
Če (($ newPassword -cmatch "[A-Z \ p Lu \ s]") "
-in ($ newPassword -cmatch "[a-z \ p Ll \ s]") "
-in ($ newPassword -match "[\ d]") "
-in ($ newPassword -match "[^ \ w]")
)

$ zahtevePassed = $ True

Medtem ko ($ zahtevePassed -eq $ false)
vrni $ newPassword

Če želite ustvariti štirimestno geslo z vsaj enim posebnim znakom, zaženite ukaz:

Ustvari-zapleteno-geslo domene (4)

Ta skript bo vedno ustvaril geslo, ki ustreza merilom zahtevnosti domene..