Search Active Directory for either Users, Computers or Groups.
The LDAP query string below can be modified to return different information. Alternative search query strings can be written using the Active Directory Users and Computers (ADUC) GUI.
'SearchAD.vbs On Error Resume Next ' Connect to the LDAP server's root object Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("defaultNamingContext") strTarget = "LDAP://" & strDNSDomain wscript.Echo "Starting search from " & strTarget ' Connect to Ad Provider Set objConnection = CreateObject("ADODB.Connection") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCmd = CreateObject("ADODB.Command") Set objCmd.ActiveConnection = objConnection ' Show only computers objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'computer'" ' or show only users 'objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'user'" ' or show only groups 'objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'group'"
Const ADS_SCOPE_SUBTREE = 2 objCmd.Properties("Page Size") = 100 objCmd.Properties("Timeout") = 30 objCmd.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCmd.Properties("Cache Results") = False Set objRecordSet = objCmd.Execute ' Iterate through the results objRecordSet.MoveFirst Do Until objRecordSet.EOF sComputerName = objRecordSet.Fields("Name") wscript.Echo sComputerName objRecordSet.MoveNext Loop
Examples
cscript SearchAD.vbs
cscript SearchAD.vbs >output.txt
“Face the facts of being what you are, for that is what changes what you are” ~ Soren Kierkegaard
Related:
ComputerInfo - List properties of a Computer (as shown in ADUC)
CMD:
DSQUERY - Search for an active directory object.
Move-Object - Move an AD object (User, Group, computer etc) to a different OU
Powershell : Get-adComputer - Get-adUser - Get-adGroup