Repadmin ist das zentrale Diagnosetool für die Active Directory-Replikation. Das Tool ist auf allen Domänencontrollern vorinstalliert oder via Remote Server Administration Tools (RSAT) nachinstallierbar.
Das hier sind häufig genutzten Parameter, damit man die nicht immer wieder einzeln googlen muss. Es gibt auch einen ganzen KB-Abschnitt darüber, aber die wichtigen Parameter gibt es dort auch nicht auf einer Seite.
Die wichtigsten Parameter von repadmin
repadmin /replsummary Zusammenfassung der ein- und ausgehenden Verbindungen (auch fehlgeschlagene)
repadmin /showrepl Status zwischen Domänencontrollern, pro Namenskontext
repadmin /queue Listet die eingehende Replikationswarteschlange auf
repadmin /syncall DOMAINCONTROLLER dc=EXAMPLE,dc=COM Synchronisiert den angegebenen Domänencontroller sofort
repadmin /syncall /AdeP Änderungen nach außen an alle Domänencontroller weiterleiten
A = Alle Partitionen
e = Enterprise (Meint: Cross Site Replikation eingeschlossen)
D = Server nach DN auflösen
P = Push (-Replikation)
repadmin /replicate Zeigt die eingehende Replikationswarteschlange an
Für den supergeheimen „xtd-cli-mode“, den man braucht um einen OfficeConnect 1950 vernünftig am CLI (via SSH) zu verwalten, gibt es ein noch viel geheimeres Kennwort. Wir haben keine Ahnung warum.
Bei einer Kennwortänderung in kleinen Domänen, also wenn das „Administrator“ Kennwort nach laaaanger Laufzeit geändert wird, müssen einige Dienste, die im Laufe der Zeit als solcher eingerichtet wurden, ebenfalls geändert werden. In den meisten Fällen ist im Laufe der Zeit auch die Anzahl der Server gewachsen.
Wie kommt der faule Administrator als nun an eine Liste der Server, wo die Anmeldedaten von Diensten angepasst werden müssen?
Lösung
Unter der Voraussetzung, dass PowerShell Remoting eingerichtet und funktionsfähig ist, hilft dieses kleine aber feine Script.
Zuerst wird eine Liste aller Server aus dem AD geholt und dann via WMIC eine gefilterte Liste der Dienste geholt, die nicht als „LocalSystem“ oder „NT Author%“ gestartet werden. Letzteres ist ein Trick, um sowohl „NT Authorität“ als auch „NT Authority“ auf Deutsch und Englisch zu erwischen.
Import-Module ActiveDirectory
$Servers = ( (Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"').dnshostname )
$ServiceName = @{ Name = 'ServiceName'; Expression = {$_.Name}}
$ServiceDisplayname = @{ Name = 'Service DisplayName'; Expression = {$_.Caption}}
foreach ($server in $servers) {
Invoke-Command $server -ScriptBlock {
Get-CimInstance -Class Win32_Service -filter "StartName != 'LocalSystem' AND NOT StartName LIKE 'NT Author%' " } |
Select-Object SystemName, $ServiceName, $ServiceDisplayname, StartMode, StartName, State | format-table -autosize
}
Unter Windows Server 2012R2 startet die PowerShell „auf einmal“ nicht mehr. Nach dem Start erscheint direkt „powershell funktioniert nicht mehr“ und der Konsolenhost schießt sich wieder.
Server 2012R2 ist zwar bekanntermaßen EOL und muss weg, aber manchmal braucht man für den Wechsel auf ein neues System nun ebenjene PowerShell.
Die PowerShell stürzt ab mit diesem Fehler:
Problemsignatur:
Problemereignisname: PowerShell
NameOfExe: powershell.exe
FileVersionOfSystemManagementAutomation: 6.3.9600.21616
InnermostExceptionType:System.ArgumentException
OutermostExceptionType:System.ArgumentException
DeepestPowerShellFrame:SHostUserInterface.GetTranscriptOptionFromSettings
DeepestFrame:System.IO.Directory.CreateDirectory
ThreadName: Consol.. main thread
Betriebsystemversion: 6.3.9600.2.0.0.400.8
Gebietsschema-ID: 1031
Lesen Sie unsere Datenschutzbestimmungen online:
http://go.microsoft.com/fwlink/?linkid=280262
Wenn die Onlinedatenschutzbestimmungen nicht verfügbar sind, lesen Sie unsere Datenschutzbestimmungen offline:
C:\Windows\system32\de-DE\erofflps.txt
Lösung
In diesem Fall war es die Gruppenrichtlinie „PowerShell-Aufzeichnung aktivieren“ (Computer > Administrative Vorlagen > Windows-Komponenten/Windows PowerShell > PowerShell-Aufzeichnung aktivieren).
Server 2012R2 erwartet aber nicht nur diesen Key, sondern auch noch den Ausgabepfad als Zeichenkette (OutputDirectory). Bleibt die Zeichenkette leer, startet die PowerShell nicht mehr. Als Gegenprobe: Setzt man den Eintrag „EnableTranscripting“ auf „0“ funktioniert sofort wieder alles – bis die GPO den Eintrag wieder zurückändert.
Also gibt es als schnelle Lösung eine *.reg-Datei, die einfach dort einen Pfad (den es geben sollte!) hinzufügt:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription]
"OutputDirectory"="C:\\Windows\\Temp"
Solle die GPO beim nächsten gpupdate den Pfad wieder leeren, müsste man seine Richtlinie entsprechend anpassen. Oder (empfohlen) die Migration des 2012R2-Systems ASAP abschießen.