Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Hi all,
The following VBScript sample lists all DCs in a Forest:
' Create log file
'
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSO.CreateTextFile ("log.txt")
' Get Forest's root
'
Set objRoot = GetObject("LDAP://rootDSE")
' Get root's Configuration
'
Set objConfig = GetObject("LDAP://" & objRoot.Get("ConfigurationNamingContext"))
' Search for the Partitions container in root's Configuration
'
objConfig.Filter = Array("crossRefContainer")
For Each objPartition in objConfig
strPartition = "LDAP://" & objPartition.Get("distinguishedName")
Next
' Search in Partitions for all domains in Forest
'
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.CommandText = "<" & strPartition & ">;(&(systemFlags=3));nCName,systemFlags;subTree"
Set objRecordset = objCommand.Execute
' List all domains in Forest
'
Do While Not objRecordset.EOF
' List all DCs in one ___domain
'
objLog.WriteLine("=================================================")
objLog.WriteLine(objRecordset.Fields(0))
objLog.WriteLine("=================================================")
Set objDCs = GetObject("GC://OU=Domain Controllers," & objRecordset.Fields(0))
For Each objDC in objDCs
objLog.WriteLine(objDC.Get("Name"))
Next
objLog.WriteLine("-------------------------------------------------")
objRecordset.MoveNext
Loop
' We are done!
'
objLog.Close
MsgBox "The End"
I hope this helps.
Regards,
Alex (Alejandro Campos Magencio)
Comments
- Anonymous
September 10, 2011
Worked like a charm! Thank you!