Freigeben über


Erweiterte Active Directory-Replikation und Topologieverwaltung mithilfe von Windows PowerShell (Level 200)

Der vorliegende Artikel bietet eine ausführlichere Erläuterung der Cmdlets für die AD DS-Replikation und die Topologieverwaltung sowie zusätzliche Beispiele. Eine Einführung finden Sie im Artikel Einführung in die Active Directory-Replikation und Topologieverwaltung mithilfe von Windows PowerShell (Stufe 100).

  1. Introduction

  2. Replikation und Metadaten

  3. Get-ADReplicationAttributeMetadata

  4. Get-ADReplicationPartnerMetadata

  5. Get-ADReplicationFailure

  6. Get-ADReplicationQueueOperation und Get-ADReplicationUpToDatenessVectorTable

  7. Sync-ADObject

  8. Topology

Introduction

In der folgenden Tabelle sind die Cmdlets für Replikation und Topologie aufgeführt, die dem Active Directory-Modul für Windows PowerShell hinzugefügt wurden:

Cmdlet Explanation
Get-ADReplicationAttributeMetadata Gibt Metadaten zur Attributreplikation für ein Objekt zurück
Get-ADReplicationConnection Gibt Objektdetails zur Domänencontrollerverbindung zurück
Get-ADReplicationFailure Gibt den neuesten Replikationsfehler für einen Domänencontroller zurück
Get-ADReplicationPartnerMetadata Gibt die Replikationskonfiguration für einen Domänencontroller zurück
Get-ADReplicationQueueOperation Gibt das Backlog der aktuellen Replikations-Warteschlange zurück
Get-ADReplicationSite Gibt Standortinformationen zurück
Get-ADReplicationSiteLink Gibt Standortverknüpfungsinformationen zurück
Get-ADReplicationSiteLinkBridge Gibt Standortverknüpfungsbrückeninformationen zurück
Get-ADReplicationSubnet Gibt AD-Subnetzinformationen zurück
Get-ADReplicationUpToDatenessVectorTable Gibt den Aktualitätsvektor für einen Domänencontroller zurück
Get-ADTrust Gibt Informationen über eine domänen- oder gesamtstrukturübergreifende Vertrauensstellung zurück
New-ADReplicationSite Erstellt einen neuen Standort
New-ADReplicationSiteLink Erstellt eine neue Standortverknüpfung
New-ADReplicationSiteLinkBridge Erstellt eine neue Standortverknüpfungsbrücke
New-ADReplicationSubnet Erstellt ein neues AD-Subnetz
Remove-ADReplicationSite Löscht einen Standort
Remove-ADReplicationSiteLink Löscht eine Standortverknüpfung
Remove-ADReplicationSiteLinkBridge Löscht eine Standortverknüpfungsbrücke
Remove-ADReplicationSubnet Löscht ein AD-Subnetz
Set-ADReplicationConnection Bearbeitet eine Verbindung
Set-ADReplicationSite Bearbeitet einen Standort
Set-ADReplicationSiteLink Bearbeitet eine Standortverknüpfung
Set-ADReplicationSiteLinkBridge Bearbeitet eine Standortverknüpfungsbrücke
Set-ADReplicationSubnet Bearbeitet ein AD-Subnetz
Sync-ADObject Erzwingt die Replikation eines einzelnen Objekts

Die Basis der meisten dieser Cmdlets ist Repadmin.exe. Andere (nicht aufgelistete) Cmdlets verwalten Features wie die dynamische Zugriffssteuerung und gruppenverwaltete Dienstkonten.

Eine vollständige Liste aller Active Directory Windows PowerShell-Cmdlets erhalten Sie mit dem folgenden Befehl:

Get-Command -module ActiveDirectory

Eine vollständige Liste der Argumente aller Active Directory Windows PowerShell-Cmdlets finden Sie im jeweiligen Hilfeartikel. Beispiel:

Get-Help New-ADReplicationSite

Mit dem Cmdlet Update-Help können Sie die Hilfedateien herunterladen und installieren.

Replikation und Metadaten

Repadmin.exe prüft Integrität und Konsistenz der Active Directory-Replikation. Repadmin.exe bietet einfache Optionen zur Datenbearbeitung, wie z. B. einige Argumente für CSV-Ausgabe, für die Automatisierung müssen jedoch normalerweise Ausgaben in Form von Textdateien analysiert werden. Das Active Directory-Modul für Windows PowerShell ist der erste Versuch, eine Option anzubieten, die wirkliche Kontrolle über die zurückgegebenen Daten ermöglicht. Bisher mussten zu diesem Zweck Skripts erstellt oder Tools von Drittanbietern verwendet werden.

Darüber hinaus implementieren die folgenden Cmdlets einen neuen Parametersatz von Target, Scope und EnumerationServer:

  • Get-ADReplicationFailure

  • Get-ADReplicationPartnerMetadata

  • Get-ADReplicationUpToDatenessVectorTable

Das Argument "Ziel" akzeptiert eine durch Kommas getrennte Liste von Zeichenfolgen, die die Zielserver, Websites, Domänen oder Gesamtstrukturen identifizieren, die im Bereich-Argument angegeben werden. Ein Sternchen (*) ist auch zulässig und bezeichnet alle Server im angegebenen Bereich. Wenn kein Bereich angegeben ist, sind alle Server in der Gesamtstruktur des aktuellen Benutzers gemeint. Das Argument Scope gibt den Breitengrad der Suche an. Zulässige Werte sind Server, Standort, Domäne und Gesamtstruktur. Der EnumerationServer gibt den Server an, der die Liste der Domänencontroller aufzählt, die in Ziel und Bereich angegeben sind. Es funktioniert mit dem Server-Argument und erfordert, dass der angegebene Server den Active Directory-Webdienst ausführt.

Im Folgenden finden Sie einige Beispielszenarien, die mit „repadmin.exe“ nicht umsetzbar sind. Sie verdeutlichen die administrativen Möglichkeiten, die diese Cmdlets bieten. Genauere Informationen zur Syntax finden Sie in den Hilfedateien der einzelnen Cmdlets.

Get-ADReplicationAttributeMetadata

Dieses Cmdlet ähnelt repadmin.exe /showobjmeta. Es gibt Replikationsmetadaten zurück, z. B. den Änderungszeitpunkt eines Attributs, den Ursprungs-Domänencontroller, Versions- und USN-Informationen und Attributdaten. Dieses Cmdlet ist hilfreich, wenn Sie feststellen müssen, wo und wann eine Änderung durchgeführt wurde.

Im Gegensatz zu Repadmin bietet Windows PowerShell flexible Kontrolle über Suche und Ausgabe. Sie können z. B. die Metadaten des Domänen-Admin-Objekts sortiert als lesbare Liste ausgeben:

Get-ADReplicationAttributeMetadata -object "cn=domain admins,cn=users,dc=corp,dc=contoso,dc=com" -server dc1.corp.contoso.com -showalllinkedvalues | format-list

Screenshot: Metadatenausgabe zum Domänenadministratorenobjekt in einer lesbaren Liste

Alternativ können Sie die Daten wie bei Repadmin in einer Tabelle ausgeben:

Get-ADReplicationAttributeMetadata -object "cn=domain admins,cn=users,dc=corp,dc=contoso,dc=com" -server dc1.corp.contoso.com -showalllinkedvalues | format-table -wrap

Screenshot: Anzeige der Daten wie in Repadmin in Tabellenform

Alternativ können Sie Metadaten für eine gesamte Klasse von Objekten abrufen, indem Sie das Cmdlet "Get-Adobject " mit einem Filter, z. B. alle Gruppen, weiterleiten und diese dann mit einem bestimmten Datum kombinieren. Pipelines sind Kanäle zur Datenübergabe zwischen mehreren Cmdlets. Anzeigen aller Gruppen, die am 13. Januar 2012 auf irgendeine Art verändert wurden:

Get-ADObject -filter 'objectclass -eq "group"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com | where-object {$_.lastoriginatingchangetime -like "*1/13/2012*" -and $_.attributename -eq "name"} | format-table object

Screenshot: Anzeigen aller Gruppen, die am 13. Januar 2012 in irgendeiner Weise verändert wurden

Weitere Informationen zu Windows PowerShell-Vorgängen mit Pipelines finden Sie unter Piping und die Pipeline in Windows PowerShell.

Anzeigen aller Gruppen, in denen Tony Wang Mitglied ist, und Anzeigen des letzten Änderungsdatums der Gruppen:

Get-ADObject -filter 'objectclass -eq "group"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com -showalllinkedvalues | where-object {$_.attributevalue -like "*tony wang*"} | format-table object,LastOriginatingChangeTime,version -auto

Screenshot: Anzeigen aller Gruppen, in denen Tony Wang Mitglied ist, und Anzeigen des letzten Änderungsdatums der Gruppe

Anzeigen aller Objekte, die mit einer Systemstatussicherung in der Domäne autoritativ wiederhergestellt wurden, anhand ihrer künstlich hohen Versionsnummer:

Get-ADObject -filter 'objectclass -like "*"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com | where-object {$_.version -gt "100000" -and $_.attributename -eq "name"} | format-table object,LastOriginatingChangeTime

Screenshot: Anzeigen aller Objekte, die mit einer Systemstatussicherung in der Domäne autoritativ wiederhergestellt wurden, anhand ihrer künstlich hohen Versionsnummer

Senden aller Benutzermetadaten in eine CSV-Datei zur späteren Analyse in Microsoft Excel:

Get-ADObject -filter 'objectclass -eq "user"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com -showalllinkedvalues | export-csv allgroupmetadata.csv

Get-ADReplicationPartnerMetadata

Dieses Cmdlet gibt Informationen über Konfiguration und Status der Replikation für einen Domänencontroller zurück und ermöglicht Überwachung, Inventur und Problembehandlung. Im Gegensatz zu Repadmin.exe werden bei Windows PowerShell nur die wirklich relevanten Daten im jeweils optimalen Format angezeigt.

Der lesbare Replikationsstatus eines einzelnen Domänencontrollers:

Get-ADReplicationPartnerMetadata -target dc1.corp.contoso.com

Screenshot: Abrufen des lesbaren Replikationsstatus eines einzelnen Domänencontrollers

Der Zeitpunkt der letzten Replikation eines Domänencontrollers in eingehender Richtung und dessen Partner, im Tabellenformat:

Get-ADReplicationPartnerMetadata -target dc1.corp.contoso.com | format-table lastreplicationattempt,lastreplicationresult,partner -auto

Screenshot: Zeitpunkt der letzten Replikation eines Domänencontrollers in eingehender Richtung und beteiligte Partner in Tabellenform

Alle Domänencontroller in der Gesamtstruktur kontaktieren und diejenigen anzeigen, deren letzter Replikationsversuch aus irgendeinem Grund fehlgeschlagen ist:

Get-ADReplicationPartnerMetadata -target * -scope server | where {$_.lastreplicationresult -ne "0"} | ft server,lastreplicationattempt,lastreplicationresult,partner -auto

Screenshot: Kontaktieren aller Domänencontroller in der Gesamtstruktur und Anzeige der DCs, deren letzter Replikationsversuch aus einem beliebigen Grund fehlgeschlagen ist

Get-ADReplicationFailure

Dieses Cmdlet gibt Informationen über aktuelle Fehler bei der Replikation zurück. Es ist analog zu Repadmin.exe /showreplsum, aber wieder mit viel mehr Kontrolle dank Windows PowerShell.

Sie können zum Beispiel die letzten Fehler für einen Domänencontroller und die Partner anzeigen, die nicht kontaktiert werden konnten:

Get-ADReplicationFailure dc1.corp.contoso.com

Screenshot: Zurückgeben der letzten Fehler eines Domänencontrollers und Anzeigen der Partner, die nicht kontaktiert werden konnten

Anzeigen einer Tabellenansicht für alle Server in einem logischen AD-Standort, sortiert zur leichteren Analyse und nur mit den wichtigsten Daten:

Get-ADReplicationFailure -scope site -target default-first-site-name | format-table server,firstfailuretime,failurecount,lasterror,partner -auto

Screenshot: Anzeigen einer Tabellenansicht für alle Server an einem logischen AD-Standort, zur besseren Lesbarkeit sortiert und nur mit den wichtigsten Daten

Get-ADReplicationQueueOperation und Get-ADReplicationUpToDatenessVectorTable

Beide Cmdlets geben Auskunft über weitere Aspekte des Domänencontrollers und darüber, ob er auf dem neuesten Stand ist. Dazu gehören auch Informationen über ausstehende Replikationen und Versionsvektoren.

Sync-ADObject

Dieses Cmdlet entspricht der Ausführung Repadmin.exe /replsingleobject. Diese Funktion ist hilfreich, wenn Sie irgendwelche Änderungen außerplanmäßig replizieren möchten, insbesondere bei der Korrektur von Problemen.

Wenn z. B. jemand das Benutzerkonto des Geschäftsführers gelöscht und anschließend mit dem Active Directory-Papierkorb wiederhergestellt hat, möchten Sie dieses Objekt vermutlich sofort auf alle Domänencontroller replizieren. Außerdem möchten Sie dabei sehr wahrscheinlich keine Replikation aller anderen Objektänderungen erzwingen. Schließlich verfügen Sie zu diesem Zweck über einen Replikationsplan, um eine Überlastung der WAN-Verbindungen zu vermeiden.

Get-ADDomainController -filter * | foreach {Sync-ADObject -object "cn=tony wang,cn=users,dc=corp,dc=contoso,dc=com" -source dc1 -destination $_.hostname}

Screenshot: Replikation eines gelöschten Kontos aus dem Active Directory-Papierkorb auf alle Domänencontroller, ohne die Replikation aller anderen vorgenommenen Objektänderungen zu erzwingen

Topology

Repadmin.exe ist zwar praktisch zum Abrufen von Daten über Replikationstopologien wie z. B. Standorte, Standortverknüpfungen, Standortverknüpfungsbrücken und Verbindungen, bietet jedoch keine umfassenden Argumente, um Änderungen an den Objekten vorzunehmen. Bislang gibt es kein skriptgesteuertes, integriertes Windows-Hilfsprogramm speziell für Administratoren, um AD DS-Topologien zu erstellen und zu bearbeiten. Active Directory ist in Millionen von Kundenumgebungen gereift, und offensichtlich wird eine Möglichkeit zum massenweisen Bearbeiten logischer Active Directory-Informationen benötigt.

Nach einer schnellen Erweiterung neuer Filialen und der Konsolidierung anderer Filialen kann es passieren, dass Sie Hunderte von Standortänderungen aufgrund von physischen Standorten, Netzwerkänderungen und neuen Kapazitätsanforderungen vornehmen müssen. Anstatt Dssites.msc und Adsiedit.msc für diese Änderungen zu verwenden, können Sie den Vorgang automatisieren. Dies ist besonders überzeugend, wenn Sie mit einer Datentabelle arbeiten, die Sie von Ihren Netzwerk- und Einrichtungsteams erhalten haben.

Die Cmdlets "Get-Adreplication\*" geben Informationen zur Replikationstopologie zurück und eignen sich für das Weiterleiten in die Cmdlets "Set-Adreplication\*" im Massenvorgang. Get-Cmdlets ändern keine Daten; sie zeigen Daten nur an oder erstellen Windows PowerShell-Sitzungsobjekte, die an Set-Adreplication\*-Cmdlets weitergeleitet werden können. Die Cmdlets "Neu " und "Entfernen " sind hilfreich zum Erstellen oder Entfernen von Active Directory-Topologieobjekten.

Sie können z. B. neue Standorte mit einer CSV-Datei erstellen:

Import-Csv -path C:\newsites.csv | new-adreplicationsite

Screenshot: Benutzeroberfläche des Editors

Screenshot: Erstellen neuer Websites mithilfe einer CSV-Datei

Alternativ können Sie eine Standortverknüpfung zwischen zwei existierenden Standorten mit benutzerdefiniertem Replikationsintervall und Standortkosten einrichten:

New-ADReplicationSiteLink -name "chicago<-->waukegan" -sitesincluded chicago,waukegan -cost 50 -replicationfrequencyinminutes 15

Screenshot: Erstellen einer neuen Standortverknüpfung zwischen zwei vorhandenen Standorten mit benutzerdefiniertem Replikationsintervall und Standortkosten

Alternativ können Sie jede Website in der Gesamtstruktur suchen und ihre Optionsattribute durch das Flag ersetzen, um eine Benachrichtigung über standortübergreifende Änderungen zu aktivieren, um mit maximaler Geschwindigkeit mit Komprimierung replizieren zu können:

Get-ADReplicationSiteLink -filter * | set-adobject -replace @{options=$($_.options -bor 1)}

Erweiterte Verwaltung mit PowerShell

Important

Legen Sie "-bor 5 " fest, um die Komprimierung auch auf diesen Websitelinks zu deaktivieren.

Oder Sie suchen nach allen Standorten mit fehlenden Subnetz-Zuweisungen, um die Liste mit den tatsächlichen Subnetzen dieser Standorte abzustimmen:

Get-ADReplicationSite -filter * -property subnets | where-object {!$_.subnets -eq "*"} | format-table name

Screenshot: Suche nach allen Standorten mit fehlenden Subnetzzuweisungen, um die Liste mit den tatsächlichen Subnetzen dieser Standorte abzustimmen

Siehe auch

Einführung in die Active Directory-Replikation und Topologieverwaltung mithilfe von Windows PowerShell (Stufe 100)