Description

If you have sites that are connected by a very fast medium and want notification-based replication between those sites, you can make a change to the site link to enable intersite notification-based replication by using the vbscript.

Script

Visual Basic
Edit|Remove
Set objConnection = CreateObject("ADODB.Connection") 
objConnection.Provider = "ADsDSOObject" 
objConnection.Open "DS Query" 
Set command = CreateObject("ADODB.Command"Set command.ActiveConnection = objConnection 
Command.Properties("searchscope") = 2 
 
'Get the AD Site Link container 
Set objRootDSE = GetObject("LDAP://RootDSE") 
strConfigurationNC = objRootDSE.Get("configurationNamingContext"Set objSites = GetObject("LDAP://CN=IP,CN=Inter-Site Transports,CN=Sites," & strConfigurationNC) 
 
'Enable change notification for each site link 
For Each objSite in objSites 
    objSiteLinkName = Mid(objSite.name, 4) 
     Set objSiteLink = GetObject("LDAP://" & objSite.distinguishedName) 
 
 
  If objSiteLink.options <> "" then 
    intBitsOrig = objSiteLink.Get("options") 
  Else 
    intBitsOrig = 0 
  End if 
 
  intBitsCalc = CalcBit(intBitsOrig, 1, TRUE) 
 
  If intBitsOrig <> intBitsCalc then 
     objSiteLink.Put "options", intBitsCalc 
     objSiteLink.SetInfo 
     WScript.Echo "Changed options attrib from " & intBitsOrig & " to " & intBitsCalc & " for SiteLink: " & objSiteLinkName 
  End if 
Next 
 
Function CalcBit(intValue, intBit, boolEnable) 
   CalcBit = intValue 
 
   If boolEnable = TRUE then 
          CalcBit = intValue Or intBit 
   Else 
          If intValue And intBit then 
             CalcBit = intValue Xor intBit 
          End if 
   End if 
End Function 
 
wscript.echo "Done"