VBS List Properties of All AD Users

This script creates a CSV file listing the below details for all Active Directory users. The script could be very easily extended to include any extra user properties.

sAMAccountName
displayName
description

TerminalServicesProfilePath
TerminalServicesHomeDirectory
TerminalServicesHomeDrive

ProfilePath
HomeDirectory
HomeDrive

scriptPath
msNPAllowDialin

' ---------------------------------------------------------------------------------
' List Properties of All AD Users
'
' Author: Phil Eddies
' https://geekshangout.com
'
' Disclainer:
' Use of this script / software is entirely at your own risk no support, warranty 
' or guaranty is given.
' 
' The author or GeeksHangout.com take not responsibility for any damage or problems
' caused by this script / software.
'
' Copyright 2008 Philip Eddies
'
' Licensed under GPL
'    This program is free software: you can redistribute it and/or modify
'    it under the terms of the GNU General Public License as published by
'    the Free Software Foundation, either version 3 of the License, or
'    (at your option) any later version.'
'
'    This program is distributed in the hope that it will be useful,
'    but WITHOUT ANY WARRANTY; without even the implied warranty of
'    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'    GNU General Public License for more details.'
'
'    You should have received a copy of the GNU General Public License
'    along with this program.  If not, see <http://www.gnu.org/licenses/>.
'
' ---------------------------------------------------------------------------------
 
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=user)(objectcategory=person))"
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:\Users_Details.csv"
 
if wshFSO.FileExists(sUsersLeft) then
	wshFSO.deletefile(sUsersLeft)
end if
 
Set objLogFile = wshFSO.CreateTextFile(strCSVPath)
objLogFile.Write("SAM Name, Display Name, Description, TS Profile Dir, TS Home Dir, TS Home Drive Letter, Profile Dir, Home Dir, Home Drive Letter, Logon Script, Allowed Dial In" & chr(13) & chr(10))
 
 
Set objRecordSet = objCmd.Execute
 
Do Until objRecordSet.EOF
 
  strDN = objRecordSet.Fields("distinguishedName")
  Set objUser = GetObject("LDAP://" & strDN)
 
  	strsAMAccountName = objUser.sAMAccountName
	strsdisplayName = objUser.displayName
	strDescription = objUser.description	
 
	strTerminalServicesProfileDirectory = objUser.TerminalServicesProfilePath
  	strTerminalServicesHomeDirectory = objUser.TerminalServicesHomeDirectory
	strTerminalServicesHomeDriveLetter = objUser.TerminalServicesHomeDrive
 
	strProfileDirectory = objUser.ProfilePath
	strHomeDirectory = objUser.HomeDirectory
	strHomeDriveLetter = objUser.HomeDrive
 
	strScriptPath = objUser.scriptPath
	strAllowedDialIn = objUser.msNPAllowDialin	
 
	objLogFile.Write(strsAMAccountName & ", " & strsdisplayName & ", " & strDescription & ", " & strTerminalServicesProfileDirectory & ", " & strTerminalServicesHomeDirectory  & ", " & strTerminalServicesHomeDriveLetter & ", " & strProfileDirectory & ", " & strHomeDirectory & ", "& strHomeDriveLetter & ", "& strscriptPath & ", "& strAllowedDialIn & 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

 

 

Leave a Comment

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