Spremenite uporabniško geslo v AD iz PowerShell-a

V tem članku bomo pogledali, kako spremeniti (ponastaviti) geslo enega ali več uporabnikov Active Directory iz ukazne vrstice PowerShell s pomočjo cmdleta Set-ADAccountPassword.

Večina skrbnikov se uporablja za spreminjanje (ponastavitev) uporabniških gesel v AD-ju prek grafičnega vtičnika dsa.msc (Uporabniki in računalniki Active Directory - ADUC). Če želite to narediti, poiščite uporabniški račun v AD-ju, z desno miškino tipko kliknite in izberite "Ponastavi geslo". To je preprost in preprost način..

Toda konzole ADUC ne boste mogli uporabljati, ko morate geslo ponastaviti naenkrat na številne uporabnike, uporabite postopek ponastavitve gesla kot eno od dejanj skripta. V tem primeru lahko gesla v AD ponastavite iz ukaznega poziva PowerShell..

Vsebina:

  • Kako ponastaviti uporabniško geslo v AD?
  • Spremenite geslo več uporabnikov v AD-ju

Kako ponastaviti uporabniško geslo v AD?

Če želite ponastaviti uporabniško geslo v AD-ju, uporabite ukazni ukaz Set-ADAccountPassword, vključen v modul Active Directory za Windows PowerShell (v namiznih različicah sistema Windows je del RSAT-a, v strežniških izdajah pa je nameščen kot ločena sestavina AD DS Snap-Ins in Command-Line Tools). Pred uporabo modula ga morate uvoziti v PowerShell sejo:

Uvozni modul ActiveDirectory

Za ponastavitev gesla mora imeti vaš račun ustrezne pravice. Navadni uporabniki AD ne morejo privzeto ponastaviti gesla drugih računov, da se ta funkcija prikaže, mora uporabnik (skupina uporabnikov) prenesti pravico do ponastavitve gesla na vsebniku AD ali ga dodati v domensko skupino operaterjev računov.

Če želite preveriti, ali ima vaš račun pravico ponastaviti geslo določenega uporabnika, odprite njegove lastnosti, pojdite na zavihek Varnost -> Napredno -> Učinkovit dostop -> določite ime računa -> preverite, ali imate dovoljenje za ponastavitev gesla.

Če želite ponastaviti geslo za uporabnika z računom dakimov in nastaviti novo geslo SuperStr0n @ p1, zaženite ukaz:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "SuperStr0n @ p1" -Force -Verbose) -PassThru

Za samodejno ustvarjanje zapletenih gesel za uporabnike lahko uporabite metodo GeneratePassword, opisano v članku "Ustvarjanje naključnih gesel z uporabo PowerShell".

Cmdlet privzeto vrne predmet in v konzoli ne prikaže ničesar. Za prikaz informacij o uporabniškem objektu v AD-ju uporabimo parameter -Passthru.

Kot uporabniško ime lahko določite sAMAccountName (kot v našem primeru), objectGUID, SID uporabnika ali njegovo DN (Razlikovano ime, na primer CN = Akimov, OU-uporabniki, DC = winitpro, DC = ru).

Če pri spremembi uporabniškega gesla ne določite parametra -Ponastavitev, morate navesti staro in novo geslo računa.

Opomba. Če se pri ponastavitvi gesla z ukaznim nizom Set-ADAccountPassword pojavi:

Set-ADAccountPassword: Geslo ne ustreza zahtevam dolžine, zapletenosti ali zgodovine domene.

To pomeni, da za določeno geslo veljajo določene zahteve glede zahtevnosti, dolžine itd., Ki so opredeljene v pravilniku o geslu domene ali pravilnem geslu..

Če ste omogočili zgodovino ukazov PowerShell in ne želite, da se gesla prikažejo v jasnem besedilu na konzoli PoSh, morate geslo pretvoriti v varno vrstico, tako kot pri ustvarjanju uporabnika (več o zaščiti gesla v skriptah PowerShell tukaj):

$ NewPasswd = Preberi gostitelj "Vnesite novo uporabniško geslo" -AsSecureString

Zdaj ponastavite geslo:

Set-ADAccountPassword dakimov -Reset -NewPassword $ NewPasswd -PassThru

Ko ponastavite geslo, lahko prisilno zaklenete akademski zapis, tudi če je zaklenjen (o tem, kako najti, iz katerega računalnika je račun zaklenjen, glejte članek Iskanje izvora zaklepanja uporabnika v Active Directoryu):

Odkleni-ADAccount -Identity dakimov

Če želite, da uporabnik ob naslednjem prijavi v domeno spremeni to geslo v novo, zaženite ukaz:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $ true

Ukaz za spremembo gesla in zahtevo po spremembi gesla (atribut userAccountControl) lahko združite v eni vrstici:

Set-ADAccountPassword dakimov -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $ True

S pomočjo ukaznega okna Get-ADUser lahko preverite, ali je bilo geslo uspešno ponastavljeno s prikazom časa, ko je bil račun nazadnje spremenjen:

Get-ADUser dakimov -Properties * | izberite ime, prenesite *

Ko je geslo ponastavljeno, se dogodek EventID 4724 prijavi na krmilnik domene (DC). Ta dogodek pomaga prepoznati račun, ki je opravil ponastavitev uporabniškega gesla..

Spremenite geslo več uporabnikov v AD-ju

Zgoraj smo pokazali, kako ponastaviti geslo enega uporabnika v AD iz PowerShell-a. Zdaj razmislite o drugem scenariju - ko morate spremeniti gesla več uporabnikov hkrati.

Najenostavnejši primer je, da morate ponastaviti gesla vseh uporabnikov z določenimi lastnostmi računa. Na primer, morate prisiliti vse zaposlene v oddelku za prodajo, da geslo ponastavijo na isto, in jih prisiliti, da se spremenijo, ko se naslednjič prijavijo:

get-aduser -filter "oddelek -eq" Oddelek za prodajo "-AND omogočen -eq 'True'" | Set-ADAccountPassword -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $ True

Razmislite o drugem primeru. Recimo, da imate datoteko CSV / Excel, ki vsebuje seznam uporabnikov, ki morajo ponastaviti gesla in edinstveno geslo za vsakega uporabnika. Format datoteke Users.csv:

sAMAccountName; NewPassword
aivanov; PaSSde0r1
bpetrov; Novo $ isde01
ssidorov; k @ nndj! 223

Z naslednjim skriptom PowerShell lahko ponastavite geslo za vsak račun v datoteki:

Uvozi-Csv users.csv -Delimiter ";" | Foreach
$ NewPass = PretvoriTo-SecureString -AsPlainText $ _. NewPassword -Force
Set-ADAccountPassword -Identity $ _. SAMAccountName -NewPassword $ NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $ false

Po izvedbi te kode bo za vse uporabnike v datoteki nastavljeno novo edinstveno geslo..