You are here:
ActiveXperts.com > ActiveXperts Network Monitor > WindowsManagement > Scripts > Active Directory > Sites and Subnets
Quicklinks
You can use any of the VBScript programs below in ActiveXperts Network Monitor. Click here for an explanation about how to include scripts in ActiveXperts Network Monitor.
strSiteRDN = "cn=Ga-Atl-Sales"
strSiteLinkRDN = "cn=DEFAULTIPSITELINK"
strSiteLinkType = "IP"
Const ADS_PROPERTY_APPEND = 3
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSitesContainer = "LDAP://cn=Sites," & strConfigurationNC
Set objSitesContainer = GetObject(strSitesContainer)
Set objSite = objSitesContainer.Create("site", strSiteRDN)
objSite.SetInfo
Set objLicensingSiteSettings = objSite.Create("licensingSiteSettings", _
"cn=Licensing Site Settings")
objLicensingSiteSettings.SetInfo
Set objNtdsSiteSettings = objSite.Create("nTDSSiteSettings", _
"cn=NTDS Site Settings")
objNtdsSiteSettings.SetInfo
Set objServersContainer = objSite.Create("serversContainer", "cn=Servers")
objServersContainer.SetInfo
strSiteLinkPath = "LDAP://" & strSiteLinkRDN & ",cn=" & strSiteLinkType & _
",cn=Inter-Site Transports,cn=Sites," & strConfigurationNC
Set objSiteLink = GetObject(strSiteLinkPath)
objSiteLink.PutEx ADS_PROPERTY_APPEND, "siteList", _
Array(objSite.Get("distinguishedName"))
objSiteLink.SetInfo
strSite1Name = "Ga-Atl-Sales"
strSite2Name = "Wa-Red-Sales"
strSiteLinkRDN = "cn=[" & strSite1Name & "][" & strSite2Name & "]"
intCost = 100
intReplInterval = 60
strDescription = "[" & strSite1Name & "][" & strSite2Name & "]"
Const ADS_PROPERTY_UPDATE = 2
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSite1DN = "cn=" & strSite1Name & ",cn=Sites," & strConfigurationNC
strSite2DN = "cn=" & strSite2Name & ",cn=Sites," & strConfigurationNC
Set objInterSiteTransports = GetObject("LDAP://" & _
"cn=IP,cn=Inter-Site Transports,cn=Sites," & strConfigurationNC)
Set objSiteLink = objInterSiteTransports.Create("siteLink", strSiteLinkRDN)
objSiteLink.Put "cost", intCost
objSiteLink.Put "replInterval", intReplInterval
objSiteLink.Put "description", strDescription
objSiteLink.PutEx ADS_PROPERTY_UPDATE, "siteList", _
Array(strSite1DN, strSite2DN)
objSiteLink.SetInfo
strSubnetRDN = "cn=192.168.1.0/26"
strSiteObjectRDN = "cn=Ga-Atl-Sales"
strDescription = "192.168.1.0/255.255.255.192"
strLocation = "USA/GA/Atlanta"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSiteObjectDN = strSiteObjectRDN & ",cn=Sites," & strConfigurationNC
strSubnetsContainer = "LDAP://cn=Subnets,cn=Sites," & strConfigurationNC
Set objSubnetsContainer = GetObject(strSubnetsContainer)
Set objSubnet = objSubnetsContainer.Create("subnet", strSubnetRDN)
objSubnet.Put "siteObject", strSiteObjectDN
objSubnet.Put "description", strDescription
objSubnet.Put "location", strLocation
objSubnet.SetInfo
strSubnetCN = "cn=192.168.1.0/26"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSubnetsContainer = "LDAP://cn=Subnets,cn=Sites," & strConfigurationNC
Set objSubnetsContainer = GetObject(strSubnetsContainer)
objSubnetsContainer.Delete "subnet", strSubnetCN
strDcRDN = "cn=atl-dc-01"
strSiteRDN = "cn=Ga-Atl-Sales"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strNtdsSettingsPath = "LDAP://cn=NTDS Settings," & strDcRDN & _
",cn=Servers," & strSiteRDN & ",cn=Sites," & strConfigurationNC
Set objNtdsSettings = GetObject(strNtdsSettingsPath)
objNtdsSettings.Filter = Array("nTDSConnection")
WScript.Echo strDcRDN & " NTDS Connection Objects" & vbCrLf & _
String(Len(strDcRDN) + 24, "=")
For Each objConnection In objNtdsSettings
WScript.Echo "Name: " & objConnection.Name
WScript.Echo "Enabled: " & objConnection.enabledConnection
WScript.Echo "From: " & Split(objConnection.fromServer, ",")(1)
WScript.Echo "Options: " & objConnection.Options
WScript.Echo "Transport: " & Split(objConnection.transportType, ",")(0)
WScript.Echo "Naming Contexts"
WScript.Echo "---------------"
For Each objDNWithBin In objConnection.GetEx("ms-DS-ReplicatesNCReason")
Wscript.Echo objDNWithBin.DNString
Next
WScript.Echo
Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select distinguishedName from " & _
"'LDAP://cn=Configuration,DC=fabrikam,DC=com' " _
& "where objectClass='nTDSDSA'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo "Computer Name: " & _
objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
Loop
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSitesContainer = "LDAP://cn=Sites," & strConfigurationNC
Set objSitesContainer = GetObject(strSitesContainer)
objSitesContainer.Filter = Array("site")
For Each objSite In objSitesContainer
WScript.Echo "Name: " & objSite.Name
Next
Set objDomain = GetObject("LDAP://rootDse")
objDC = objDomain.Get("dnsHostName")
Wscript.Echo "Authenticating domain controller:" & objDC
On Error Resume Next
Set objServer = GetObject _
("LDAP://CN=SEA-DC-01,CN=Servers,CN=Default-First-Site-Name," & _
" CN=Sites,CN=Configuration,DC=fabrikam,DC=com")
dnBHTList = objServer.GetEx("bridgeheadTransportList")
WScript.Echo "Bridge Head Transport List:"
WScript.Echo "This multi-valued attribute lists the protocol" & _
"transports over which this BridgeHead Server replicates"
For Each dnValue in dnBHTList
WScript.Echo "Value: " & dnValue
Next
strSiteRDN = "cn=Ga-Atl-Sales"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSitePath = "LDAP://" & strSiteRDN & ",cn=Sites," & strConfigurationNC
Set objSite = GetObject(strSitePath)
objSite.GetInfoEx Array("siteObjectBL"), 0
arrSiteObjectBL = objSite.GetEx("siteObjectBL")
WScript.Echo strSiteRDN & " Subnets" & vbCrLf & _
String(Len(strSiteRDN) + 8, "-")
For Each strSiteObjectBL In arrSiteObjectBL
WScript.Echo Split(Split(strSiteObjectBL, ",")(0), "=")(1)
Next
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSubnetsContainer = "LDAP://cn=Subnets,cn=Sites," & strConfigurationNC
Set objSubnetsContainer = GetObject(strSubnetsContainer)
objSubnetsContainer.Filter = Array("subnet")
Set objHash = CreateObject("Scripting.Dictionary")
For Each objSubnet In objSubnetsContainer
objSubnet.GetInfoEx Array("siteObject"), 0
strSiteObjectDN = objSubnet.Get("siteObject")
strSiteObjectName = Split(Split(strSiteObjectDN, ",")(0), "=")(1)
If objHash.Exists(strSiteObjectName) Then
objHash(strSiteObjectName) = objHash(strSiteObjectName) & "," & _
Split(objSubnet.Name, "=")(1)
Else
objHash.Add strSiteObjectName, Split(objSubnet.Name, "=")(1)
End If
Next
For Each strKey In objHash.Keys
WScript.Echo strKey & "," & objHash(strKey)
Next
strDcName = "atl-dc-01"
Set objADSysInfo = CreateObject("ADSystemInfo")
strDcSiteName = objADSysInfo.GetDCSiteName(strDcName)
WScript.Echo "DC Site Name: " & strDcSiteName
Set objADSysInfo = CreateObject("ADSystemInfo")
WScript.Echo "Current site name: " & objADSysInfo.SiteName
strSourceSiteRDN = "cn=Default-First-Site-Name"
strTargetSiteRDN = "cn=Ga-Atl-Sales"
strDcRDN = "cn=atl-dc-01"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strDcPath = "LDAP://" & strDcRDN & ",cn=Servers," & strSourceSiteRDN & _
",cn=Sites," & strConfigurationNC
strTargetSitePath = "LDAP://cn=Servers," & strTargetSiteRDN & _
",cn=Sites," & strConfigurationNC
Set objTargetSite = GetObject(strTargetSitePath)
objTargetSite.MoveHere strDcPath, strDcRDN
strOldSiteRDN = "cn=Default-First-Site-Name"
strNewSiteRDN = "cn=Ga-Atl-Sales"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strSitesContainer = "LDAP://cn=Sites," & strConfigurationNC
strOldSitePath = "LDAP://" & strOldSiteRDN & ",cn=Sites," & strConfigurationNC
Set objSitesContainer = GetObject(strSitesContainer)
objSitesContainer.MoveHere strOldSitePath, strNewSiteRDN
strDcName = "atl-dc-01"
strSiteName = "ga-atl-sales"
Set objADSysInfo = CreateObject("ADSystemInfo")
strDcSiteName = objADSysInfo.GetDCSiteName(strDcName)
If UCase(strSiteName) = UCase(strDcSiteName) Then
WScript.Echo "TRUE: " & strDcName & " is in site " & strSiteName
Else
WScript.Echo "FALSE: " & strDcName & " is NOT in site " & strSiteName
End If