List domain hierarchy (VBScript)
This code can be found in
Chapter 2 of Active Directory Cookbook, 2nd edition
Purchase XP Cookbook or Networking Recipes for only $25 plus shipping! While supplies last.
Find out how to download all of the VBScript code from this site.
' This VBScript code prints the hierarchy of domains in a forest.
' The method I used is a little convoluted, but then again so is VBScript.
' ---------------------------------------------------------------
' Provided as a web-only addition for the book:
' "Active Directory Cookbook" by Robbie Allen
' Publisher: O'Reilly and Associates
' ISBN: 0-596-00466-4
' Book web site: http://rallenhome.com/books/adcookbook/code.html
' ---------------------------------------------------------------
' This code prints out the forest tree hierarchy
set objRootDSE = GetObject("LDAP://RootDSE")
strBase = "<LDAP://cn=Partitions," & _
objRootDSE.Get("ConfigurationNamingContext") & ">;"
strFilter = "(&(objectcategory=crossRef)(systemFlags=3));"
strAttrs = "name,trustParent,distinguishedName;"
strScope = "onelevel"
set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
set objRS = objConn.Execute(strBase & strFilter & strAttrs & strScope)
objRS.MoveFirst
set dicSubDomainTrue = CreateObject("Scripting.Dictionary")
set dicDomainHierarchy = CreateObject("Scripting.Dictionary")
while not objRS.EOF
if objRS.Fields("trustParent").Value <> "" then
dicSubDomainTrue.Add objRS.Fields("name").Value, 0
set objDomainParent = GetObject("LDAP://" & objRS.Fields("trustParent").Value)
dicDomainHierarchy.Add objRS.Fields("name").Value, objDomainParent.Get("name")
else
dicSubDomainTrue.Add objRS.Fields("name").Value, 1
end if
objRS.MoveNext
wend
for each strDomain in dicSubDomainTrue
if dicSubDomainTrue(strDomain) = 1 then
DisplayDomains strDomain, "", dicDomainHierarchy
end if
next
Function DisplayDomains ( strDomain, strSpaces, dicDomainHierachy )
WScript.Echo strSpaces & strDomain
for each strD in dicDomainHierarchy
if dicDomainHierarchy(strD) = strDomain then
DisplayDomains strD, " " & strSpaces, dicDomainHierarchy
end if
next
End Function
|
This code has been viewed 5127 times.
|
New from the creators of TechTasks.com:
StatSheet.com
|