lösenordet för Katalogtjänståterställningsläge (Dsrm) ställs först in när du marknadsför en ny domänkontrollant. Jag har stött på många Active Directory-miljöer där dsrm-lösenordet för Domänkontrollanterna inte är känt eller säkert lagrat för hämtning vid behov.
domänkontrollanter har inte ett lokalt administratörskonto som kan användas för att logga in lokalt när som helst, som du har på arbetsstationer och servrar. När det finns ett Active Directory-fel på domänkontrollanten kanske du inte kan logga in på servern med dina domänuppgifter för att reparera Active Directory.
Directory Services Restore Mode (Dsrm) är ett startalternativ för en domänkontrollant, som låter dig logga in på servern även när Active Directory har misslyckats. Du kommer att använda ett konto som liknar det lokala administratörskontot på en arbetsstation eller server. För att logga in på domänkontrollanten efter start i DSRM, ange .\ administratör som användarnamn med dsrm-lösenordet, som visas i bilderna nedan. Detta loggar dig lokalt utan åtkomst till några domänresurser.
dsrm-lösenordet är unikt för varje domänkontrollant, så du måste gå igenom dsrm-lösenordsåterställningsprocessen för varje domänkontrollant i din miljö. Dsrm-lösenordet kan inte återställas när domänkontrollanten startas i DSRM.
jag tar dig nu igenom stegen för att återställa dsrm-lösenordet.
ntdsutil
kommandot ntdsutil används för att återställa dsrm-lösenordet. Detta verktyg kan användas från kommandotolken och fungerar även i Windows PowerShell.
stegen att följa i Kommandotolken eller Windows PowerShell är följande:
- ntdsutil
- Ställ in dsrm-lösenord
du kommer nu att se prompten ”Återställ Dsrm-administratörslösenord”.
vid denna prompt du har ett val mellan två parametrar för att slutföra dsrm återställning av lösenord:
- Återställ lösenord på servern %s
- Synkronisera från domänkonto %s
jag kommer att gå igenom stegen med var och en av dessa parametrar för att visa skillnaderna mellan dem.
Återställ lösenord på servern %s
ett fjärrdomänkontrollnamn kan anges vilket innebär att detta kan slutföras från alla enheter som har Active Directory Services-verktygen installerade. %s är en platshållare för servernamnet. Detta kan också slutföras för den lokala servern när du är inloggad på en domänkontrollant. Här är några exempel:
fjärrserver: Återställ lösenord på server dcs001p01
lokal server: Återställ lösenord på server null
ange det nya dsrm-lösenordet och upprepa för att bekräfta det nya lösenordet efter att du har angett Återställ lösenord på server %s. Ange q två gånger för att avsluta ntdsutil-verktyget.
stegen kan också anges i en enda rad, förutom lösenordet som fortfarande behöver anges vid anvisningarna.
ntdsutil ”ange dsrm-lösenord ””Återställ lösenord på servern dcs001p01” ”q ””q”
Synkronisera från domänkonto %s
ett alternativ är att använda parametern synkronisera från domänkonto %s. %s är en platshållare för ett domänanvändarkonto. Istället för att ange dsrm-lösenordet under processen synkroniserar du det nya dsrm-lösenordet för den lokala domänkontrollanten med lösenordet för det angivna domänanvändarkontot.
detta är en engångslösenordssynkronisering när du utför återställningen hålls lösenordet inte synkroniserat med användarkontot. Dsrm-lösenordet ändras inte när du återställer lösenordet för användarkontot. Dsrm-lösenordet ändras bara när du har slutfört proceduren för återställning av dsrm-lösenord.
jag har skapat ett konto i min domän som heter svc-dc, satt ett komplext lösenord (som jag vill använda för mitt dsrm-lösenord) och inaktiverade också kontot. Kontot är inte medlem i andra grupper än standard ”domänanvändare”. Kontot kommer inte att användas för andra uppgifter som används för att ställa in dsrm-lösenordet på en domänkontrollant.
detta bör slutföras lokalt på måldomänkontrollanten. Denna parameter återställer bara dsrm-lösenordet på den lokala servern, du kan inte ange en annan domänkontrollant. Du kommer att få ett fel när kommandot inte körs på en domänkontrollant, enligt exemplet nedan:
återställningskommandot kan också matas in med en enda rad:
ntdsutil ”Ställ in dsrm-lösenord ””Synkronisera från domänkonto svc-dc” ”q ””q”
att köra kommandot på en domänkontrollant slutförs framgångsrikt utan ytterligare uppmaningar. Dsrm-lösenordet är nu inställt på lösenordet som är konfigurerat på domänanvändarkontot. Nästa gång kan jag bara ändra lösenordet för domänanvändarkontot och köra lösenordsåterställningsprocessen igen för att uppdatera dsrm-lösenordet på domänkontrollanten.
att logga in på varje domänkontrollant kan dock ta tid beroende på storleken på miljön. Windows PowerShell Remoting ger möjlighet att köra kommandon på distans. Jag kan använda Invoke-kommandot för att utföra dsrm-lösenordsåterställning på en fjärrdomänkontrollant från vilken enhet som helst.
anropa-kommando-datornamn DCS001P01-ScriptBlock { ntdsutil ”ange dsrm-lösenord ””Synkronisera från domänkonto svc-dc” ”q ””q” }
om du planerar att använda samma lösenord för alla domänkontrollanter kan PowerShell-kommandot enkelt anpassas för att ändra lösenordet på alla domänkontrollanter i domänen.
Get-ADDomainController -Filter * | ForEach-Object { Invoke-Command -ComputerName $_.hostname -ScriptBlock { ntdsutil "set dsrm password" "Sync from domain account svc-dc" "q" "q" } write-host $_.hostname }
du kan också använda ett separat användarkonto för varje domänkontrollant, vilket säkerställer att dsrm-lösenordet är annorlunda på varje domänkontrollant. Remote PowerShell-kommandot kan sedan matas in på separata rader för varje domänkontrollant och användarkontokombination. Spara skriptet för senare användning. I det här exemplet har jag skapat ett konto för varje domänkontrollant:
Invoke-Command -ComputerName DCS001P01 -ScriptBlock { ntdsutil "set dsrm password" "Sync from domain account svc-DCS001P01" "q" "q" }Invoke-Command -ComputerName DCS002P01 -ScriptBlock { ntdsutil "set dsrm password" "Sync from domain account svc-DCS002P01" "q" "q" }
jag kan nu utföra återställningen på alla mina domänkontrollanter genom att återanvända den sparade .PS1-filen i PowerShell ise. Vid min nästa dsrm-lösenordsändring behöver jag bara ändra lösenordet för användarkontona och köra skriptet igen för att uppdatera dsrm-lösenordet på mina domänkontrollanter.
schemalagd aktivitet
det är möjligt att konfigurera schemalagda aktiviteter på Domänkontrollanterna för att återställa dsrm-lösenordet automatiskt med parametern sync from domain account %S.
uppgiften kan utföras dagligen för att ställa in dsrm-lösenordet genom att synkronisera med ett domänanvändarkonto. Dsrm-lösenordet skulle effektivt bara ändras när användarkontolösenordet ändras. På mitt nästa dsrm-lösenordsändringsschema behöver jag bara ändra lösenord för användarkontona och låta den schemalagda uppgiften ta hand om resten.
Använd denna metod med försiktighet!
den schemalagda aktiviteten körs på domänkontrollanten med lämpliga behörigheter, obevakad. Om någon obehörig person kan ändra lösenordet för referenstjänstkontot ändrar de effektivt dsrm-lösenordet utan att kräva några Domänadministratörsrättigheter.
servicekontona måste säkras och granskas vilket lägger till ytterligare administrativa kostnader som enligt min mening uppväger fördelarna med att använda en schemalagd uppgift för att hantera DRSM-lösenordsändringarna.
schemalagda aktiviteter kan misslyckas vilket kan leda till att dsrm-lösenordet inte ändras som förväntat. Detta kan resultera i en situation där du inte kan logga in på domänkontrollanten i DSRM. De planerade uppgifterna måste övervakas effektivt och kan lägga till de administrativa insatserna.