Dela via


Avancerad Active Directory-replikering och topologihantering med Windows PowerShell (nivå 200)

Det här avsnittet beskriver cmdletarna för AD DS-replikering och topologihantering i detalj och innehåller ytterligare exempel. En introduktion finns i Introduktion till Active Directory-replikering och topologihantering med Windows PowerShell (nivå 100).

  1. Introduktion

  2. Replikering och metadata

  3. Get-ADReplicationAttributeMetadata

  4. Get-ADReplicationPartnerMetadata

  5. Get-ADReplicationFailure

  6. Get-ADReplicationQueueOperation och Get-ADReplicationUpToDatenessVectorTable

  7. Sync-ADObject

  8. Topologi

Inledning

I följande tabell visas cmdletar för replikering och topologi som lagts till i Active Directory Windows PowerShell-modulen:

Cmdlet (ett PowerShell-kommando) Förklaring
Get-ADReplicationAttributeMetadata Returnerar metadata för attributreplikering för ett objekt
Get-ADReplicationConnection Returnerar information om domänkontrollantens anslutningsobjekt
Get-ADReplicationFailure Returnerar det senaste replikeringsfelet för en domänkontrollant
Get-ADReplicationPartnerMetadata Returnerar replikeringskonfiguration för en domänkontrollant
Get-ADReplicationQueueOperation Returnerar aktuell eftersläpning i replikeringskön
Get-ADReplicationSite Returnerar webbplatsinformation
Get-ADReplicationSiteLink Returnerar webbplatslänkinformation
Get-ADReplicationSiteLinkBridge Returnerar information om platslänksbro
Get-ADReplicationSubnet Returnerar AD-undernätsinformation
Get-ADReplicationUpToDatenessVectorTable Returnerar UTD-vektorn för en domänkontrollant
Get-ADTrust Returnerar information om ett förtroende mellan domäner eller skogar
New-ADReplicationSite Skapar en ny webbplats
New-ADReplicationSiteLink Skapar en ny webbplatslänk
New-ADReplicationSiteLinkBridge Skapar en ny webbplatslänkbrygga
New-ADReplicationSubnet Skapar ett nytt AD-undernät
Remove-ADReplicationSite Tar bort en webbplats
Remove-ADReplicationSiteLink Tar bort en webbplatslänk
Remove-ADReplicationSiteLinkBridge Tar bort en webbplatslänkbrygga
Remove-ADReplicationSubnet Tar bort ett AD-undernät
Set-ADReplicationConnection Ändrar en anslutning
Set-ADReplicationSite Ändrar en webbplats
Set-ADReplicationSiteLink Ändrar en webbplatslänk
Set-ADReplicationSiteLinkBridge Ändrar en platslänkbrygga
Set-ADReplicationSubnet Ändrar ett AD-undernät
Sync-ADObject Tvingar fram replikering av ett enskilt objekt

De flesta av dessa cmdlets har sin grund i Repadmin.exe. Andra cmdletar (visas inte) hanterar funktioner som dynamisk åtkomstkontroll och grupphanterade tjänstkonton.

Om du vill ha en fullständig lista över alla Active Directory Windows PowerShell-cmdletar kör du:

Get-Command -module ActiveDirectory

En fullständig lista över alla Active Directory Windows PowerShell-cmdlet-argument finns i hjälpen. Till exempel:

Get-Help New-ADReplicationSite

Använd cmdleten Update-Help för att ladda ned och installera hjälpfiler

Replikering och metadata

Repadmin.exe verifierar hälsotillståndet och konsekvensen för Active Directory-replikering. Repadmin.exe erbjuder enkla alternativ för datamanipulering – vissa argument stöder till exempel CSV-utdata – men automatisering kräver vanligtvis parsning via textfilutdata. Active Directory-modulen för Windows PowerShell är det första försöket att erbjuda ett alternativ som ger verklig kontroll över returnerade data. Innan dess var du tvungen att skapa skript eller använda verktyg från tredje part.

Dessutom implementerar följande cmdletar en ny parameteruppsättning av Target, Scope och EnumerationServer:

  • Get-ADReplicationFailure

  • Get-ADReplicationPartnerMetadata

  • Get-ADReplicationUpToDatenessVectorTable

Argumentet Mål accepterar en kommaavgränsad lista med strängar som identifierar målservrar, platser, domäner eller skogar som anges av argumentet Omfång . En asterisk (*) är också tillåten och innebär alla servrar inom det angivna omfånget. Om inget omfång anges innebär det alla servrar i den aktuella användarens skog. Argumentet Omfång anger sök latitud. Acceptabla värden är Server, Plats, Domän och Skog. EnumerationServer anger den server som räknar upp listan över domänkontrollanter som anges i Mål och Omfång. Det fungerar på samma sätt som serverargumentet och kräver att den angivna servern kör Active Directory-webbtjänsten.

För att introducera cmdlets, här är några exempelscenarier som visar funktioner som är omöjliga att repadmin.exe; med dessa illustrationer till hands blir de administrativa möjligheterna uppenbara. Granska cmdlet-hjälpen för specifika användningskrav.

Get-ADReplicationAttributeMetadata

Den här cmdleten liknar repadmin.exe /showobjmeta. Det gör att du kan returnera replikeringsmetadata, till exempel när ett attribut ändras, den ursprungliga domänkontrollanten, versionsinformationen och USN-informationen och attributdata. Den här cmdleten är användbar för att granska var och när en ändring inträffade.

Till skillnad från Repadmin ger Windows PowerShell flexibel sök- och utdatakontroll. Du kan till exempel mata ut metadata för objektet Domänadministratörer, ordnade som en läsbar lista:

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

Skärmbild som visar metadatautdata för objektet Domänadministratörer ordnade som en läsbar lista.

Du kan också ordna data så att de ser ut som repadmin i en tabell:

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

Skärmbild som visar de data som ordnats så att de ser ut som repadmin i en tabell.

Du kan också hämta metadata för en hel klass med objekt genom att ange cmdleten Get-Adobject med ett filter, till exempel alla grupper, och sedan kombinera den med ett visst datum. Pipelinen är en kanal som används mellan flera cmdletar för att skicka data. För att se alla grupper som har ändrats på något sätt den 13 januari 2012:

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

Skärmbild som visar hur du ser alla grupper som ändrats på något sätt den 13 januari 2012.

Mer information om fler Windows PowerShell-åtgärder med pipelines finns i Rörledning och pipeline i Windows PowerShell.

Du kan också ta reda på varje grupp som har Tony Wang som medlem och när gruppen senast ändrades:

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

Skärmbild som visar hur du får reda på varje grupp som har Tony Wang som medlem och när gruppen senast ändrades.

Du kan också hitta alla objekt som auktoritativt återställs med hjälp av en säkerhetskopia av systemtillstånd i domänen, baserat på deras artificiellt höga version:

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

Skärmbild som visar hur du hittar alla objekt som har blivit autoritativt återställda med hjälp av en säkerhetskopia av systemtillstånd i domänen, baserat på deras artificiellt höga versioner.

Du kan också skicka alla användarmetadata till en CSV-fil för senare undersökning i Microsoft Excel:

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

Get-ADReplicationPartnerMetadata

Den här cmdleten returnerar information om konfigurationen och replikeringstillståndet för en domänkontrollant, så att du kan övervaka, inventera eller felsöka. Till skillnad från Repadmin.exeinnebär användning av Windows PowerShell att du bara ser de data som är viktiga för dig, i önskat format.

Till exempel det läsbara replikeringstillståndet för en enda domänkontrollant:

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

Skärmbild som visar hur du hämtar det läsbara replikeringstillståndet för en enda domänkontrollant.

Alternativt, tidpunkten då en domänkontrollant senast replikerade inkommande och dess samverkande partner i tabellformat:

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

Skärmbild som visar den senaste gången en domänkontrollant replikerade inkommande och dess partner i tabellformat.

Du kan också kontakta alla domänkontrollanter i skogen och visa alla vars senaste replikeringsförsök misslyckades av någon anledning:

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

Skärmbild som visar hur du kontaktar alla domänkontrollanter i skogen och visar alla vars senaste replikeringsförsök misslyckades av någon anledning.

Get-ADReplicationFailure

Den här cmdleten kan användas för att returnera information om de senaste felen i replikeringen. Det är analogt med Repadmin.exe /showreplsum, men återigen, med mycket mer kontroll tack vare Windows PowerShell.

Du kan till exempel returnera en domänkontrollants senaste fel och de partner som den inte kontaktade:

Get-ADReplicationFailure dc1.corp.contoso.com

Skärmbild som visar hur du kan returnera en domänkontrollants senaste fel och de partner som han inte kontaktade.

Alternativt kan du returnera en tabellvy för alla servrar på en specifik logisk AD-plats, ordnad för enklare visning och endast innehåller de mest kritiska data:

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

Skärmbild som visar hur du returnerar en tabellvy för alla servrar på en specifik logisk AD-plats, sorterad för enklare visning och endast innehåller de mest kritiska data.

Get-ADReplicationQueueOperation och Get-ADReplicationUpToDatenessVectorTable

Båda dessa cmdletar returnerar ytterligare aspekter av domänkontrollanten och om de är uppdaterade, vilket inkluderar väntande replikering och information om versionsvektorer.

Sync-ADObject

Den här cmdleten är motsvarande att köra Repadmin.exe /replsingleobject. Det är mycket användbart när du gör ändringar som kräver out-of-band-replikering, särskilt för att åtgärda ett problem.

Om någon till exempel har tagit bort VD:ns användarkonto och sedan återställt det med Active Directory-papperskorgen, vill du förmodligen att det replikeras till alla domänkontrollanter omedelbart. Du vill förmodligen också göra detta utan att tvinga replikering av alla andra objektändringar som gjorts. Det är trots allt därför du har ett replikeringsschema – för att undvika överlagring av WAN-länkar.

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

Skärmbild som visar hur du replikerar ett borttaget konto från Papperskorgen i Active Directory till alla domänkontrollanter utan att tvinga replikering av alla andra objektändringar som gjorts.

Topologi

Även om Repadmin.exe är bra på att returnera information om replikeringstopologi som platser, platslänkar, platslänkbryggor och anslutningar, har den inte en omfattande uppsättning argument för att göra ändringar. I själva verket har det aldrig funnits skriptbara, in-box Windows-verktyg som utformats specifikt för administratörer för att skapa och ändra AD DS-topologi. När Active Directory har mognat i miljontals kundmiljöer blir behovet av att massanpassa logisk information i Active Directory uppenbart.

Efter en snabb expansion av nya avdelningskontor i kombination med konsolidering av andra kan du till exempel ha hundra platsändringar att göra baserat på fysiska platser, nätverksändringar och nya kapacitetskrav. I stället för att använda Dssites.msc och Adsiedit.msc för att göra ändringar kan du automatisera. Detta är särskilt intressant när du börjar med ett kalkylblad med data som tillhandahålls av dina nätverks- och anläggningsteam.

Cmdletarna Get-Adreplication\* returnerar information om replikeringstopologi och är användbara för att skicka data vidare till cmdletarna Set-Adreplication\* i bulk. Get cmdlets ändrar inte data, de visar bara data eller skapar Windows PowerShell-sessionsobjekt som kan kopplas till Set-Adreplication\* cmdlets. Cmdletarna New och Remove är användbara för att skapa eller ta bort Active Directory-topologiobjekt.

Du kan till exempel skapa nya webbplatser med hjälp av en CSV-fil:

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

Skärmbild som visar Anteckningars gränssnitt.

Skärmbild som visar hur du skapar nya webbplatser med hjälp av en CSV-fil.

Du kan också skapa en ny platslänk mellan två befintliga platser med ett anpassat replikeringsintervall och en platskostnad:

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

Skärmbild som visar hur du skapar en ny platslänk mellan två befintliga platser med ett anpassat replikeringsintervall och en platskostnad.

Du kan också hitta varje plats i skogen och ersätta deras alternativattribut med flaggan för att aktivera meddelanden om ändringar mellan platser för att replikera med maximal hastighet med komprimering:

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

avancerad hantering med PowerShell

Viktigt!

Ställ in -bor 5 för att inaktivera komprimering på dessa platslänkar också.

Du kan också hitta alla platser som saknar undernätstilldelningar för att stämma av listan med de faktiska undernäten på dessa platser:

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

Skärmbild som visar hur du hittar alla platser som saknar undernätstilldelningar för att stämma av listan med de faktiska undernäten på dessa platser.

Se även

Introduktion till Active Directory-replikering och topologihantering med Windows PowerShell (nivå 100)