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
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..