Promijenite korisničku lozinku u AD-u iz PowerShell-a

U ovom ćemo članku pogledati kako promijeniti (resetirati) lozinku jednog ili više korisnika Active Directory-a iz naredbenog retka PowerShell pomoću cmdleta Set-ADAccountPassword.

Većina administratora navikla se mijenjati (resetirati) korisničke lozinke u AD-u putem grafičkog dodatka dsa.msc (Korisnici aktivnih direktorija i računala - ADUC). Da biste to učinili, pronađite korisnički račun u AD-u, desnom tipkom miša kliknite i odaberite "Poništi lozinku". Ovo je jednostavan i jasan način..

Ali nećete moći koristiti ADUC konzolu kada trebate ponovo postaviti lozinku mnogim korisnicima, koristite postupak vraćanja lozinke kao jednu od radnji skripte. U ovom slučaju lozinke u AD-u možete resetirati iz naredbenog retka PowerShell..

sadržaj:

  • Kako resetirati korisničku lozinku u AD-u?
  • Promijenite lozinku više korisnika u AD-u

Kako resetirati korisničku lozinku u AD-u?

Za resetiranje korisničke lozinke u AD-u koristite cmdlet Set-ADAccountPassword, uključen u modul Active Directory za Windows PowerShell (u verzijama za stolni sustav Windows dio je RSAT-a, a u izdanjima poslužitelja instaliran je kao zasebna komponenta AD DS Snap-Ins i Alati naredbenog retka). Prije upotrebe modula, morate ga uvesti u PowerShell sesiju:

Uvozni modul ActiveDirectory

Za resetiranje zaporke vaš račun mora imati odgovarajuća prava. Naravno, obični korisnici AD-a ne mogu zadano postaviti lozinku drugih računa, da bi se ova značajka pojavila, korisniku (korisničkoj grupi) mora biti dodijeljeno pravo na resetiranje lozinke na AD spremniku ili ga dodati u domenu grupe operatora računa.

Da biste potvrdili da vaš račun ima pravo na resetiranje lozinke određenog korisnika, otvorite njegova svojstva, idite na karticu Sigurnost -> Napredno -> Učinkovit pristup -> navedite naziv svog računa -> provjerite da li imate dozvolu za resetiranje lozinke..

Da biste resetirali lozinku za korisnika s dakimov računom i postavili novu lozinku SuperStr0n @ p1, pokrenite naredbu:

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

Da biste automatski generirali složene lozinke za korisnike, možete koristiti metodu GeneratePassword opisanu u članku "Generiranje slučajnih lozinki pomoću PowerShell-a".

Po defaultu, cmdlet vraća objekt i ne prikazuje ništa u konzoli. Za prikaz informacija o korisničkom objektu u AD-u, koristimo parametar -PassThru.

Kao korisničko ime možete navesti sAMAccountName (kao u našem slučaju), objectGUID, SID korisnika ili njegov DN (Razlikovano ime, na primjer CN = Akimov, OU-Korisnici, DC = winitpro, DC = ru).

Ako pri promjeni korisničke lozinke ne navedete parametar -Reset, morate navesti staru i novu zaporku računa.

primjedba. Ako dođe do pogreške prilikom resetiranja lozinke pomoću cmdleta Set-ADAccountPassword:

Set-ADAccountPassword: Lozinka ne zadovoljava dužinu, složenost ili povijest zahtjeva domene.

To znači da se određeni zahtjev za složenost, duljinu itd. Definirani u politici lozinke domene ili detaljnoj politici lozinke koja se primjenjuje na račun odnose na navedenu lozinku..

Ako ste omogućili povijest PowerShell naredbi i ne želite da se lozinke prikazuju u čistom tekstu na PoSh konzoli, morate pretvoriti lozinku u sigurnu liniju baš kao i prilikom stvaranja korisnika (više o zaštiti lozinke u PowerShell skriptama ovdje):

$ NewPasswd = Pročitajte host "Unesite novu korisničku lozinku" -AsSecureString

Sada resetirajte zaporku:

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

Kada resetirate lozinku, možete prisiliti zaključavanje akademskog zapisa čak i ako je zaključan (o tome kako pronaći s kojeg je računala zaključan račun, pogledajte članak Pronalaženje izvora zaključavanja korisnika u Active Directoryu):

Otključaj-ADAccount -Dentitet dakimov

Kako bi korisnik sljedeću prijavu na domenu promijenio ovu lozinku u novu, pokrenite naredbu:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $ true

Možete kombinirati naredbu za promjenu lozinke i zahtjev za promjenu lozinke (atribut userAccountControl) u jednom retku:

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

Pomoću cmdleta Get-ADUser možete provjeriti je li lozinka uspješno resetirana prikazom vremena posljednjeg mijenjanja računa:

Get-ADUser dakimov -Properties * | odaberite ime, proslijedi *

Kada se lozinka resetira, događaj EventID 4724 prijavljuje se na kontroler domene (DC). Taj događaj pomaže identificirati račun koji je izvršio vraćanje korisničke lozinke..

Promijenite lozinku više korisnika u AD-u

Iznad smo pokazali kako resetirati lozinku jednog korisnika u AD-u iz PowerShell-a. Sada razmislite o drugom scenariju - kada trebate promijeniti lozinke nekoliko korisnika odjednom.

Najjednostavniji slučaj je da morate poništiti lozinke svih korisnika s određenim svojstvima računa. Na primjer, trebate primorati sve zaposlenike u odjelu prodaje da resetiraju lozinku na istu i prisiliti ih da se promijeni sljedeći put kada se prijave:

get-aduser -filter "odjel -eq" Odjel prodaje "-AND omogućen -eq" True "" | Set-ADAccountPassword -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -PromeniPasswordAtLogon $ True

Razmotrimo još jedan slučaj. Pretpostavimo da imate CSV / Excel datoteku koja sadrži popis korisnika koji trebaju resetirati lozinke i jedinstvene lozinke za svakog korisnika. Format datoteke Users.csv:

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

Pomoću sljedeće skripte PowerShell možete resetirati lozinku za svaki račun u datoteci:

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

Nakon izvršavanja ovog koda postavit će se nova jedinstvena lozinka za sve korisnike u datoteci..