Módosítsa a felhasználói jelszót az AD-ben a PowerShell-ből

Ebben a cikkben megnézzük, hogyan lehet egy vagy több Active Directory-felhasználó jelszavát megváltoztatni (visszaállítani) a PowerShell parancssorból a parancsmag segítségével Set-ADAccountPassword.

A legtöbb rendszergazda hozzászokott az AD felhasználói jelszavak megváltoztatásához (visszaállításához) a dsa.msc grafikus beépülő modulon (Active Directory felhasználók és számítógépek - ADUC) keresztül. Ehhez keresse meg a felhasználói fiókot az AD-ben, kattintson a jobb gombbal és válassza a "Jelszó visszaállítása" lehetőséget. Ez egy egyszerű és érthető módszer..

De nem fogja tudni használni az ADUC konzolt, amikor sok felhasználó számára egyszerre kell visszaállítania a jelszót, a jelszó-visszaállítási eljárást az egyik szkriptműveletnek kell használni. Ebben az esetben visszaállíthatja a jelszavakat az AD-ben a PowerShell parancssorból..

Tartalom:

  • Hogyan lehet visszaállítani a felhasználói jelszót az AD-ben?
  • Több felhasználó jelszavának módosítása az AD-ben

Hogyan lehet visszaállítani a felhasználói jelszót az AD-ben?

A felhasználói jelszó visszaállításához az AD-ben használja a parancsmagot Set-ADAccountPassword, benne van a Windows PowerShell Active Directory moduljában (a Windows asztali verziói az RSAT részét képezik, a kiszolgálói kiadásokban pedig az AD DS beépülő modulok és a parancssori eszközök különálló összetevőjeként vannak telepítve). A modul használata előtt importálnia kell egy PowerShell-munkamenetbe:

Importmodul ActiveDirectory

A jelszó visszaállításához fiókjának rendelkeznie kell a megfelelő jogokkal. Természetesen a rendes AD-felhasználók alapértelmezés szerint nem állíthatják vissza a többi fiók jelszavát, hogy ez a szolgáltatás megjelenhessen, a felhasználónak (felhasználói csoportnak) fel kell hatalmazni a jelszó alaphelyzetbe állításának jogát az AD-tárolóban, vagy fel kell venni a fióküzemeltetők tartománycsoportba..

Annak ellenőrzéséhez, hogy fiókjának joga van-e visszaállítani egy adott felhasználó jelszavát, nyissa meg annak tulajdonságait, lépjen a Biztonság fülre -> Speciális -> Hatékony hozzáférés -> Adja meg a fiók nevét -> Győződjön meg arról, hogy rendelkezik-e a Jelszó visszaállítása engedélyével..

A dakimov-fiókkal rendelkező felhasználó jelszavának visszaállításához és új SuperStr0n @ p1 jelszó beállításához futtassa a következő parancsot:

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

A felhasználók számára összetett jelszavak automatikus generálásához használhatja a „Véletlenszerű jelszavak létrehozása a PowerShell használatával” című cikkben ismertetett GeneratePassword módszert..

Alapértelmezés szerint a parancsmag visszaad egy objektumot, és semmit sem jelenít meg a konzolban. A felhasználói objektum adatainak AD-ben történő megjelenítéséhez a paramétert használjuk -passthru.

Felhasználónévként megadhatja az sAMAccountName (mint a mi esetünkben), objectGUID, felhasználói SID vagy annak DN-jét (megkülönböztetett név, például CN = Akimov, OU-felhasználók, DC = winitpro, DC = ru).

Ha nem adja meg a paramétert a felhasználói jelszó megváltoztatásakor -visszaállítása, meg kell adnia a régi és az új fiók jelszavát.

megjegyzés. Ha hiba történik a jelszó alaphelyzetbe állításakor a Set-ADAccountPassword parancsmag segítségével:

Set-ADAccountPassword: A jelszó nem felel meg a domain hosszának, összetettségének vagy előzményeinek.

Ez azt jelenti, hogy a domain jelszó házirendjében vagy a fiókra vonatkozó granulált jelszó házirendben meghatározott bizonyos összetettségi, hossz stb. Követelmények vonatkoznak a megadott jelszóra..

Ha engedélyezte a PowerShell parancsok előzményeit, és nem akarja, hogy a jelszavak a PoSh konzol tiszta szövegében jelenjenek meg, akkor a jelszót biztonságos sorra kell konvertálnia, akárcsak a felhasználó létrehozásakor (a jelszóvédelemről a PowerShell szkriptekben bővebben itt olvashat):

$ NewPasswd = Read-Host "Új felhasználói jelszó megadása" -AsSecureString

Most állítsa vissza a jelszót:

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

A jelszó alaphelyzetbe állításakor kényszerítheti az akadémiai rekord zárolását, még akkor is, ha zárolva van (a fiók zárolásának módjáról lásd: A felhasználói zár forrásának megtalálása az Active Directory-ban című cikk):

Unlock-ADAccount -Identity dakimov

Annak érdekében, hogy a felhasználó ezt a jelszót egy újra cserélje, amikor legközelebb bejelentkezik a tartományba, futtassa a következő parancsot:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $ true

Egy sorban kombinálhatja a jelszó módosítási parancsot és a jelszó megváltoztatásának követelményét (userAccountControl attribútum):

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

A Get-ADUser parancsmag segítségével ellenőrizheti, hogy a jelszó sikeresen vissza lett-e állítva, amikor megjeleníti a fiók utoljára megváltozott időpontját:

Get-ADUser dakimov - Tulajdonságok * | válassza a nevet, adja át *

A jelszó visszaállításakor az EventID 4724 esemény bejelentkezik a tartományvezérlőbe (DC) .Ez az esemény segít azonosítani a felhasználói jelszó visszaállítását végrehajtó fiókot..

Több felhasználó jelszavának módosítása az AD-ben

A fent bemutattuk, hogyan állíthatjuk vissza az AD felhasználói jelszavát a PowerShell programból. Most fontolja meg egy másik forgatókönyvet - amikor egyszerre több felhasználó jelszavát kell megváltoztatnia.

A legegyszerűbb eset az, hogy vissza kell állítania minden felhasználó jelszavát, amelynek bizonyos fióktulajdonságai vannak. Például arra kell kényszerítenie az értékesítési osztály összes alkalmazottját, hogy állítsák vissza a jelszót, és kényszerítsék őket a következő bejelentkezéskor történő megváltoztatására:

get-aduser -filter "osztály -eq 'Értékesítési részleg' -AND engedélyezve -eq 'Igaz'" | Set-ADAccountPassword -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $ True

Vegyünk egy másik esetet. Tegyük fel, hogy van egy CSV / Excel fájlja, amely tartalmazza azoknak a felhasználóknak a listáját, akiknek vissza kell állítaniuk a jelszavakat, és minden felhasználó egyedi jelszavát. Users.csv fájl formátum:

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

A következő PowerShell szkript segítségével visszaállíthatja a fájlban lévő összes fiók jelszavát:

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

A kód végrehajtása után egy új egyedi jelszót kell beállítani a fájlban lévő összes felhasználó számára..