Dans l'exemple ci-dessous nous allons voir comment utiliser PowerShell pour vérifier la réplication de l'annuaire Active Directory.
Dans cette exemple nous utilisons 3 contrôleurs de domaine : le premier en 2008r2, le second en 2012r2 et le dernier en Windows 2016 Technical Preview 5.
Le script ci-dessous recherche l'ensemble des contrôleurs de domaine du domaine et retourne un fichier csv indiquant pour chaque contrôleur de domaine, le partenaire de réplication, le résultat de la dernière réplication et la date de la dernière réplication correcte.
Le script utilise la commande Get-ADReplicationPartnerMetadata disponible à partir de Windows 2012. Le script ne fonctionne pas depuis un contrôleur de domaine en Windows 2008R2.
La commande retourne entre autre tourne les valeurs « lastreplicationsuccess » indiquant la date de la dernière réussite et « lastreplicationresult » indiquant le résultat de la dernière tentative.
function repli-result
{
param ( [string]$Serv, [string]$partner, [string]$result,[string]$lastsuccess )
$ReplResult =New-Object PSObject
$ReplResult | Add-Member -Name Serveur -MemberType NoteProperty -Value "$serv"
$ReplResult | Add-Member -Name Partenaire -MemberType NoteProperty -Value "$partner"
$ReplResult | Add-Member -Name resultat -MemberType NoteProperty -Value "$result"
$ReplResult | Add-Member -Name DernierOK -MemberType NoteProperty -Value "$lastsuccess"
return $ReplResult
}
$MaListe=@()
$dcs= Get-addomaincontroller -filter *
foreach ($dc in $dcs)
{
$b=Get-ADReplicationPartnerMetadata -target $dc.name
foreach ($a in $b)
{
IF ($($a.lastreplicationresult) -ne "0")
{
write-host "Replication HS"
$MaListe+=repli-result -serv $a.server -partner $a.partner -result "ERREUR" -lastsuccess $($a.lastreplicationsuccess)
}
IF ($($a.lastreplicationresult) -eq "0")
{
write-host "Replication OK"
$MaListe+=repli-result -serv $a.server -partner $a.partner -result "OK" -lastsuccess $($a.lastreplicationsuccess)
}
}
}
$MaListe | export-csv -Path c:\temp\replication.csv -Delimiter ";" -Encoding Unicode
Après l'exécution du script nous retrouvons le résultat dans un fichier « .csv », dans le dossier « c:\temp » :
Le fichier ci-dessous indique le serveur, le partenaire de réplication , le dernier résultat, et la date de la dernière réussite :