Solved

Windwos 2003 Active Directory User List

Posted on 2010-11-18
4
313 Views
Last Modified: 2012-05-10
Is there a way to download a list of all user accounts in the user container of active directory?  If yes, can it be done in excel?
0
Comment
Question by:deklinm
  • 2
4 Comments
 
LVL 27

Accepted Solution

by:
KenMcF earned 250 total points
ID: 34165942
I would use ADfind - www.joeware.net

you can add any other attributes you need.

adfind -base "OU=USERACCOUNTS,DC=DOMAIN,DC=LOCAL" -f "&(objectcategory=person)(objectclass=user)" name samaccountname mail -csv -nolabel -nodn >c:\users.csv

0
 
LVL 13

Assisted Solution

by:Rick
Rick earned 250 total points
ID: 34165951
0
 
LVL 13

Expert Comment

by:Rick
ID: 34165978
Or a vbscript, like this one:

Dim ObjWb
 Dim ObjExcel
 Dim x, zz
 Set objRoot = GetObject("LDAP://RootDSE")
 strDNC = objRoot.Get("DefaultNamingContext")
 Set objDomain = GetObject("LDAP://" & strDNC) ' Bind to the top of the Domain using LDAP using ROotDSE
 Call ExcelSetup("Sheet1") ' Sub to make Excel Document
 x = 1
 Call enummembers(objDomain)
 Sub enumMembers(objDomain)
 On Error Resume Next
 Dim Secondary(20) ' Variable to store the Array of 2ndary email alias's
 For Each objMember In objDomain ' go through the collection
 
 If ObjMember.Class = "user" Then ' if not User object, move on.
 x = x +1 ' counter used to increment the cells in Excel
 
    objwb.Cells(x, 1).Value = objMember.Class
    ' I set AD properties to variables so if needed you could do Null checks or add if/then's to this code
    ' this was done so the script could be modified easier.
 SamAccountName = ObjMember.samAccountName
 Cn = ObjMember.CN
 FirstName = objMember.GivenName
 LastName = objMember.sn
 initials = objMember.initials
 Descrip = objMember.description
 Office = objMember.physicalDeliveryOfficeName
 Telephone = objMember.telephonenumber
 EmailAddr = objMember.mail
 WebPage = objMember.wwwHomePage
 Addr1 = objMember.streetAddress
 City = objMember.l
 State = objMember.st
 ZipCode = objMember.postalCode
 Title = ObjMember.Title
 Department = objMember.Department
 Company = objMember.Company
 Manager = ObjMember.Manager
 Profile = objMember.profilePath
 LoginScript = objMember.scriptpath
 HomeDirectory = ObjMember.HomeDirectory
 HomeDrive = ObjMember.homeDrive
 AdsPath = Objmember.Adspath
 LastLogin = objMember.LastLogin
 
 zz = 1 ' Counter for array of 2ndary email addresses
 For each email in ObjMember.proxyAddresses
     If Left (email,5) = "SMTP:" Then
 Primary = Mid (email,6) ' if SMTP is all caps, then it's the Primary
     ElseIf Left (email,5) = "smtp:" Then
        Secondary(zz) = Mid (email,6) ' load the list of 2ndary SMTP emails into Array.
        zz = zz + 1
     End If
 Next
 ' Write the values to Excel, using the X counter to increment the rows.
 
 objwb.Cells(x, 2).Value = SamAccountName
 objwb.Cells(x, 3).Value = CN
 objwb.Cells(x, 4).Value = FirstName
 objwb.Cells(x, 5).Value = LastName
 objwb.Cells(x, 6).Value = Initials
 objwb.Cells(x, 7).Value = Descrip
 objwb.Cells(x, 8).Value = Office
 objwb.Cells(x, 9).Value = Telephone
 objwb.Cells(x, 10).Value = EmailAddr
 objwb.Cells(x, 11).Value = WebPage
 objwb.Cells(x, 12).Value = Addr1
 objwb.Cells(x, 13).Value = City
 objwb.Cells(x, 14).Value = State
 objwb.Cells(x, 15).Value = ZipCode
 objwb.Cells(x, 16).Value = Title
 objwb.Cells(x, 17).Value = Department
 objwb.Cells(x, 18).Value = Company
 objwb.Cells(x, 19).Value = Manager
 objwb.Cells(x, 20).Value = Profile
 objwb.Cells(x, 21).Value = LoginScript
 objwb.Cells(x, 22).Value = HomeDirectory
 objwb.Cells(x, 23).Value = HomeDrive
 objwb.Cells(x, 24).Value = Adspath
 objwb.Cells(x, 25).Value = LastLogin
 objwb.Cells(x,26).Value = Primary
 
 ' Write out the Array for the 2ndary email addresses.
 For ll = 1 To 20
 objwb.Cells(x,26+ll).Value = Secondary(ll)
 Next
 ' Blank out Variables in case the next object doesn't have a value for the property
 SamAccountName = "-"
 Cn = "-"
 FirstName = "-"
 LastName = "-"
 initials = "-"
 Descrip = "-"
 Office = "-"
 Telephone = "-"
 EmailAddr = "-"
 WebPage = "-"
 Addr1 = "-"
 City = "-"
 State = "-"
 ZipCode = "-"
 Title = "-"
 Department = "-"
 Company = "-"
 Manager = "-"
 Profile = "-"
 LoginScript = "-"
 HomeDirectory = "-"
 HomeDrive = "-"
 Primary = "-"
 For ll = 1 To 20
 Secondary(ll) = "" 
 Next
    End If
   
    ' If the AD enumeration runs into an OU object, call the Sub again to itinerate
   
    If objMember.Class = "organizationalUnit" or OBjMember.Class = "container" Then
        enumMembers (objMember)
    End If
 Next
 End Sub
 Sub ExcelSetup(shtName) ' This sub creates an Excel worksheet and adds Column heads to the 1st row
 Set objExcel = CreateObject("Excel.Application")
 Set objwb = objExcel.Workbooks.Add
 Set objwb = objExcel.ActiveWorkbook.Worksheets(shtName)
 Objwb.Name = "Active Directory Users" ' name the sheet
 objwb.Activate
 objExcel.Visible = True
 objwb.Cells(1, 2).Value = "SamAccountName"
 objwb.Cells(1, 3).Value = "CN"
 objwb.Cells(1, 4).Value = "FirstName"
 objwb.Cells(1, 5).Value = "LastName"
 objwb.Cells(1, 6).Value = "Initials"
 objwb.Cells(1, 7).Value = "Descrip"
 objwb.Cells(1, 8).Value = "Office"
 objwb.Cells(1, 9).Value = "Telephone"
 objwb.Cells(1, 10).Value = "Email"
 objwb.Cells(1, 11).Value = "WebPage"
 objwb.Cells(1, 12).Value = "Addr1"
 objwb.Cells(1, 13).Value = "City"
 objwb.Cells(1, 14).Value = "State"
 objwb.Cells(1, 15).Value = "ZipCode"
 objwb.Cells(1, 16).Value = "Title"
 objwb.Cells(1, 17).Value = "Department"
 objwb.Cells(1, 18).Value = "Company"
 objwb.Cells(1, 19).Value = "Manager"
 objwb.Cells(1, 20).Value = "Profile"
 objwb.Cells(1, 21).Value = "LoginScript"
 objwb.Cells(1, 22).Value = "HomeDirectory"
 objwb.Cells(1, 23).Value = "HomeDrive"
 objwb.Cells(1, 24).Value = "Adspath"
 objwb.Cells(1, 25).Value = "LastLogin"
 objwb.Cells(1, 26).Value = "Primary SMTP"
 End Sub
 MsgBox "Done" ' show that script is complete
 
0
 
LVL 3

Expert Comment

by:KruglerD
ID: 34166014
Are you looking to get a list remotely from the server?  Or can you use the Active Directory Users and Computers to export to CSV and then open in Excel that way?
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

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

Suggested Solutions

Many of us need to configure DHCP server(s) in their environment. We can do that simply via DHCP console on server or using MMC snap-in on each computer with Administrative Tools installed in a network. But what if we have to configure many DHCP ser…
Recently, I had the need to build a standalone system to run a point-of-sale system. I’m running this on a low-voltage Atom processor, so I wanted a light-weight operating system, but still needed Windows. I chose to use Microsoft Windows Server 200…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

830 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