Export Details of all Computers in an Active Directory Domain

The below script will create a CSV file listing the Name, Description, Operating System and Service Pack level of all computers in an Active Directory domain.

Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
set objConn = CreateObject("ADODB.Connection")
set objCmd = CreateObject("ADODB.Command")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
Set objCmd.ActiveConnection = objConn
objCmd.Properties("Cache Results") = False
strFilter = "(&(objectclass=computer)(objectcategory=computer))"
strQuery = "<LDAP://" & strDNSDomain & ">;" & strFilter & ";distinguishedName;subtree"
objCmd.CommandText = strQuery
Set wshFSO=Createobject("Scripting.FileSystemObject")
 
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
 
strCSVPath = "C:\Computer_Details.csv"
 
if wshFSO.FileExists(strCSVPath) then
	wshFSO.deletefile(strCSVPath)
end if
 
Set objLogFile = wshFSO.CreateTextFile(strCSVPath)
objLogFile.Write("CN, Description, OS, SP" & chr(13) & chr(10))
 
 
Set objRecordSet = objCmd.Execute
 
Do Until objRecordSet.EOF
 
  strDN = objRecordSet.Fields("distinguishedName")
  Set objComputer = GetObject("LDAP://" & strDN)
 
  	strCN = objComputer.cn
	strDesc = objComputer.description
	strOS = objComputer.operatingSystem	
	strSP = objComputer.operatingSystemServicePack
 
	objLogFile.Write(strCN & ", " & strDesc & ", " & strOS & ", " & strSP & chr(13) & chr(10))
objRecordSet.MoveNext
Loop
 
msgbox "Complete." & vbLF & "Ouput has been saved to " & strCSVPath
 
objLogFile.close
objConn.Close
Set objGroup = Nothing
Set objRootDSE = Nothing
Set objCmd = Nothing
Set objConn = Nothing

 

2 thoughts on “Export Details of all Computers in an Active Directory Domain”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.