Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


group and user report for a particular OU

Posted on 2008-06-11
Medium Priority
Last Modified: 2008-12-01
I need to produce a report, txt or preferably xls that lists all the groups in the Bizmark OU and all of the members of those groups, filtering out computer accounts.  also, i'd like to list the firstname lastname instead of logon name; all logon names are by empoyee ID and are non intuitive.

I'd like teh report to look something like this.

  Burt Blylevin
  Luke Longley
  Jeb Springfield
 paul allen
 charles zesterhaus

Question by:everetjo
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3

Accepted Solution

ms-pro earned 1500 total points
ID: 21762614

' Bind to RootDSE - this object is used to 
set objRootDSE = getobject("LDAP://RootDSE")
' File name to export to
strExportFile = "C:\MyExport.xls" 
' Root of search set to default naming context.
' e.g. dc=expert-exchange,dc=com
' RootDSE saves hard-coding the domain.  
' If want to search within an OU rather than the domain,
' specify the distinguished name of the ou.  e.g. 
' ou=students,dc=expert-exchange,dc=com"
strRoot = objRootDSE.Get("DefaultNamingContext")
' Filter for user accounts - could be modified to search for specific users,
' such as those with mailboxes, users in a certain department etc.
strfilter = "(&(objectCategory=Person)(objectClass=User))"
' Attributes to return from the query
strAttributes = "sAMAccountName,userPrincipalName,givenName,sn," & _
		"initials,displayName,physicalDeliveryOfficeName," & _
		"telephoneNumber,mail,wWWHomePage,profilePath," & _
		"scriptPath,homeDirectory,homeDrive,title,department," & _
		"company,manager,homePhone,pager,mobile," & _
		"facsimileTelephoneNumber,ipphone,info," & _
'Scope of the search.  Change to "onelevel" if you didn't want to search child OU's
strScope = "subtree"
set cn = createobject("ADODB.Connection")
set cmd = createobject("ADODB.Command")
cn.open "Provider=ADsDSOObject;"
cmd.ActiveConnection = cn
cmd.commandtext = "<LDAP://" & strRoot & ">;" & strFilter & ";" & _
		   strAttributes & ";" & strScope
set rs = cmd.execute
' Use Excel COM automation to open Excel and create an excel workbook
set objExcel = CreateObject("Excel.Application")
set objWB = objExcel.Workbooks.Add
set objSheet = objWB.Worksheets(1)
' Copy Field names to header row of worksheet
For i = 0 To rs.Fields.Count - 1
	objSheet.Cells(1, i + 1).Value = rs.Fields(i).Name
	objSheet.Cells(1, i + 1).Font.Bold = True
' Copy data to the spreadsheet
' Save the workbook
' Clean up
set objSheet = Nothing
set objWB =  Nothing
set objExcel = Nothing

Open in new window


Author Comment

ID: 21814199

i get an error on line 13 char 1 saying that the directory property cannot be found in the cache

i hardcoded the AD Path info instead of rootDSE
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 21816841
you dont need to edit on char 13.
you just need to specify the distinguished name of the ou. char 11.

Author Comment

ID: 21859652
Im still new with VBS and I'm still having trouble.

if my full AD path is LDAP://OU=SALES, DC=hq, DC=nt, DC=domain, DC=com

how would I ensure that this OU is the focus ?

Expert Comment

ID: 21860724
GetObject("LDAP://OU=SALES, DC=hq, DC=nt, DC=domain, DC=com")

Author Comment

ID: 21899126
I'm still having some problems, and I think im doing something wrong.

How would I change the code to have it look in this one OU and create an xl file with all the information present in the user objects ?

using LDAP://OU=SALES, DC=hq, DC=nt, DC=domain, DC=com, I replaced the set objRootDSE statement but I'm not sure how to proceed.

Author Comment

ID: 22000268
got it working!! thanks MsPro

Featured Post

Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Group policies can be applied selectively to specific devices with the help of groups. Utilising this, it is possible to phase-in group policies, over a period of time, by randomly adding non-members user or computers at a set interval, to a group f…
Compliance and data security require steps be taken to prevent unauthorized users from copying data.  Here's one method to prevent data theft via USB drives (and writable optical media).
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question