[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2176
  • Last Modified:

Need script to generate list of all email accounts in Active Directory 2003

I need a script that will give me a .csv file of all email accounts in active directory (2003) .I don't need any info associated with the account,etc. Just need a list of all active email addresses.
0
FIFBA
Asked:
FIFBA
1 Solution
 
FIFBAAuthor Commented:
Is there a way to get the email address only into a csv file?
0
 
chandru_solCommented:
Try this script.........

Save the script as listemail.vbs

From the command prompt where the script resides run
cscript listemail.vbs > listemailaddress.csv

regards
Chandru
Option Explicit
 
Dim objRootDSE, strDNSDomain, objCommand, objConnection
Dim strBase, strFilter, strAttributes, strQuery, objRecordSet
Dim strNTName, strDN, colmail, strmail, stremail, strOU
 
' Determine DNS domain name.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
 
' Use ADO to search Active Directory.
Set objCommand = CreateObject("ADODB.Command")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
 
' Search entire domain.
strBase = "<LDAP://" & strDNSDomain & ">"
 
' Filter on contacts
strFilter = "(&(&(& (mailnickname=*)(| (&(objectCategory=person)(objectClass=user))))))"
 
' Comma delimited list of attribute values to retrieve.
strAttributes = "cn,distinguishedName,adspath,proxyaddresses"
 
' Construct the ADO query, using LDAP syntax.
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
 
' Run the query.
objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
 
' Enumerate the recordset and output the values retrieved in
' comma delimited format.
Do Until objRecordSet.EOF
strNTName = objRecordSet.Fields("cn").Value
strDN = objRecordSet.Fields("distinguishedName").Value
colmail = objRecordSet.Fields("proxyAddresses")
 
If IsEmpty(colMail) Then
' The attribute is empty (has no values).
wscript.echo "No Email address"
Else
' The attribute has one or more values - enumerate.
For Each strMail In colMail
If Instr(strMail, "SMTP:") then
strEmail = Right(strMail, Len(strMail)-5)
End If
Next 
End If
Wscript.Echo strNTName & "," & strEmail
objRecordSet.MoveNext
Loop
objRecordSet.Close
 
' Clean up.
objConnection.Close
Set objRootDSE = Nothing
Set objCommand = Nothing
Set objConnection = Nothing
Set objRecordSet = Nothing
'===============

Open in new window

0
 
chandru_solCommented:
Thanks FIFBA!
0
 
dapopa9Commented:
thanks!
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now