Zmeňte heslo používateľa v službe AD z prostredia PowerShell

V tomto článku sa pozrieme na to, ako zmeniť (resetovať) heslo jedného alebo viacerých používateľov služby Active Directory z príkazového riadka PowerShell pomocou cmdlet Set-ADAccountPassword.

Väčšina administrátorov sa používa na zmenu (resetovanie) užívateľských hesiel v AD prostredníctvom grafického modulu snap-in dsa.msc (Active Directory Users & Computers - ADUC). Ak to chcete urobiť, vyhľadajte používateľské konto v službe AD, kliknite naň pravým tlačidlom myši a vyberte príkaz „Obnoviť heslo“. Je to jednoduchý a priamy spôsob..

Nebudete však môcť používať konzolu ADUC, keď budete musieť resetovať heslo naraz mnohým používateľom. Postup obnovenia hesla použite ako jednu z akcií skriptu. V takom prípade môžete obnoviť heslá v AD z príkazového riadka PowerShell..

obsah:

  • Ako resetovať užívateľské heslo v AD?
  • Zmeňte heslo viacerých používateľov v službe AD

Ako resetovať užívateľské heslo v AD?

Ak chcete obnoviť heslo používateľa v službe AD, použite rutinu cmdlet Set-ADAccountPassword, zahrnutá v module Active Directory pre Windows PowerShell (v desktopových verziách Windows je súčasťou RSAT av serverových vydaniach je nainštalovaná ako samostatná súčasť AD DS Snap-Ins a Command-Line Tools). Pred použitím modulu ho musíte importovať do relácie PowerShell:

Importovať modul ActiveDirectory

Na obnovenie hesla musí mať váš účet príslušné práva. Bežní používatelia AD samozrejme nemôžu predvolene resetovať heslo iných účtov. Aby sa táto funkcia zobrazila, musí byť používateľovi (skupine používateľov) delegované právo obnoviť heslo v kontajneri AD alebo ho pridať do domény domény Operátori účtu.

Ak chcete overiť, či má váš účet právo obnoviť heslo konkrétneho používateľa, otvorte jeho vlastnosti, prejdite na kartu Zabezpečenie -> Rozšírené -> Efektívny prístup -> zadajte názov účtu -> uistite sa, že máte povolenie na obnovenie hesla.

Ak chcete obnoviť heslo používateľa pomocou účtu dakimov a nastaviť nové heslo SuperStr0n @ p1, spustite príkaz:

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

Na automatické generovanie zložitých hesiel pre používateľov môžete použiť metódu GeneratePassword opísanú v článku „Generovanie náhodných hesiel pomocou PowerShell“.

V predvolenom nastavení cmdlet vracia objekt a nezobrazuje na konzole nič. Na zobrazenie informácií o užívateľskom objekte v AD používame parameter -passthru.

Ako užívateľské meno môžete uviesť sAMAccountName (ako v našom prípade), objectGUID, SID používateľa alebo jeho DN (Rozlišujúci názov, napríklad CN = Akimov, OU-Users, DC = winitpro, DC = ru)..

Ak nezadáte parameter pri zmene hesla používateľa -Reset, musíte zadať staré a nové heslo účtu.

poznámka. Ak sa vyskytne chyba pri resetovaní hesla pomocou rutiny Set-ADAccountPassword:

Set-ADAccountPassword: Heslo nespĺňa požiadavky na dĺžku, zložitosť alebo históriu domény.

To znamená, že na zadané heslo sa vzťahujú určité požiadavky na zložitosť, dĺžku atď., Ktoré sú definované v politike hesla domény alebo v politike podrobného hesla uplatniteľnej na účet..

Ak ste povolili históriu príkazov PowerShell a nechcete, aby sa heslá zobrazovali v prehľadnom texte v konzole PoSh, heslá musíte previesť na bezpečnú linku rovnako ako pri vytváraní používateľa (viac o ochrane heslom v skriptoch PowerShell tu):

$ NewPasswd = Read-Host "Zadajte nové užívateľské heslo" -AsSecureString

Teraz resetujte heslo:

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

Pri obnovení hesla môžete vynútiť uzamknutie akademického záznamu, aj keď je zamknuté (informácie o tom, z akého počítača je účet uzamknutý, nájdete v článku Vyhľadávanie zdroja zámku používateľa v službe Active Directory):

Odomknite účet AD-Account -Identity dakimov

Ak má užívateľ zmeniť toto heslo na nové pri najbližšom prihlásení do domény, spustite príkaz:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $ true

Príkaz na zmenu hesla môžete kombinovať s požiadavkou na zmenu hesla (atribút userAccountControl) na jednom riadku:

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

Pomocou rutiny Get-ADUser môžete skontrolovať, či sa heslo úspešne resetovalo zobrazením času, kedy bol účet naposledy zmenený:

Get-ADUser dakimov -Vlastnosti * | vyberte meno, prejdite *

Po obnovení hesla sa do radiča domény (DC) prihlási udalosť EventID 4724. Táto udalosť pomáha pri identifikácii účtu, ktorý vykonal reset hesla používateľa..

Zmeňte heslo viacerých používateľov v službe AD

Hore sme ukázali, ako resetovať heslo jedného používateľa v službe AD z prostredia PowerShell. Teraz zvážte ďalší scenár - keď potrebujete zmeniť heslá viacerých používateľov naraz.

Najjednoduchší prípad je, že musíte obnoviť heslá všetkých používateľov s určitými vlastnosťami účtu. Napríklad musíte prinútiť všetkých zamestnancov oddelenia predaja, aby obnovili rovnaké heslo a prinútili ich, aby sa zmenili pri najbližšom prihlásení:

get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ZmenaPasswordAtLogon $ True

Zvážte ďalší prípad. Predpokladajme, že máte súbor CSV / Excel, ktorý obsahuje zoznam používateľov, ktorí potrebujú obnoviť heslá a jedinečné heslo pre každého používateľa. Formát súboru Users.csv:

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

Pomocou nasledujúceho skriptu PowerShell môžete obnoviť heslo pre každý účet v súbore:

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

Po vykonaní tohto kódu sa pre všetkých používateľov v súbore nastaví nové jedinečné heslo..