You want to determine if two domain controllers are in sync and have no objects to replicate to each other.
By running the following two commands you can compare the up-to-dateness vector on the two DCs:
> repadmin /showutdvec <DC1Name> <NamingContextDN> > repadmin /showutdvec <DC2Name> <NamingContextDN>
The Windows 2000 version of repadmin used a different syntax to accomplish the same thing. Here is the equivalent syntax:
> repadmin /showvector <NamingContextDN> <DC1Name> > repadmin /showvector <NamingContextDN> <DC2Name>
' This code prints the up-to-dateness vector for the DCs defined in ' the array arrDCList for the naming context defined by strNCDN ' ------ SCRIPT CONFIGURATION ------ ' Set to the DN of the naming context you want to check the DCs against strNCDN = "<NamingContextDN>" ' e.g. dc=amer,dc=rallencorp,dc=com ' Enter 2 or more DCs to compare arrDCList = Array("<DC1Name>","<DC2Name>") ' ------ END CONFIGURATION --------- set objIadsTools = CreateObject("IADsTools.DCFunctions") for each strDC in arrDCList WScript.Echo "Replication partner USNs for " & strDC & ":" intUSN = objIadsTools.GetHighestCommittedUSN(Cstr(strDC),0) if intUSN = -1 then Wscript.Echo "Error retrieving USN: " & objIadsTools.LastErrorText WScript.Quit end if WScript.Echo vbTab & strDC & " = " & intUSN intRes = objIadsTools.GetReplicationUSNState(Cstr(strDC), _ Cstr(strNCDN),0,0) if intRes = -1 then Wscript.Echo "Error retrieving USNs: " & objIadsTools.LastErrorText WScript.Quit end if for count = 1 to intRes WScript.Echo vbTab & objIadsTools.ReplPartnerName(count) & _ " = " & objIadsTools.ReplPartnerUSN(count) next WScript.Echo next
To determine if two or more DCs are in sync from a replication standpoint, you need to compare their up-to-dateness vectors. Each domain controller stores what it thinks is the highest update sequence number (USN) for every DC that replicates a naming context. This is called the up-to-dateness vector. If you want to compare DC1 and DC2, you'd first want to get the up-to-dateness vector for DC1 and compare DC1's highest USN against what DC2 thinks DC1's highest USN is. If they are different, then you can deduce that DC2 has not replicated all the changes from DC1 yet. Next, compare the reverse to see if DC1 is in sync with DC2.
See IadsTools.doc in the Support Tools for more information on the IADsTools interface