CONST ForWriting = 2
CONST ForAppending = 8
CONST CONST_ERROR = 0
CONST CONST_WSCRIPT = 1
CONST CONST_CSCRIPT = 2
CONST CONST_SHOW_USAGE = 3
CONST CONST_LIST = 4
Const ADS_SCOPE_SUBTREE = 2
Const ADS_UF_DONT_EXPIRE_PASSWD = 65536
Const ADS_UF_PASSWORD_EXPIRED = 8388608
Const E_ADS_PROPERTY_NOT_FOUND = & h8000500D
Const ONE_HUNDRED_NANOSECOND = . 000000100
Const SECONDS_IN_DAY = 86400
Dim fso,flog
Dim strTargetOU
Set rootDSE = GetObject ( " LDAP://rootDSE " )
BaseDN = rootDSE.Get( " defaultNamingContext " )
' =======================================
strTargetOU = " LDAP:// " & BaseDN
Outputfile = " DC用户账号 "
' ========================================
set fso = CreateObject ( " Scripting.FileSystemObject " )
set fLog = fso.OpenTextFile(Outputfile & " .csv " , ForWriting, TRUE )
fLog.WriteLine " 帐号,姓名,显示名,工号,邮件地址,公司,部门,省份 "
set FSO = Nothing
Set fLog = Nothing
Dim adConn, adComm
Set adConn = CreateObject ( " ADODB.Connection " )
Set adComm = CreateObject ( " ADODB.Command " )
adConn.Provider = " ADsDSOObject "
adConn.Open " Active Directory Provider "
Wscript.echo " Starting ... "
Dim UserAccount,usermail,username,userdisplay,userid,company,Department,st
Dim Usercheck
Dim outcount
Dim rs
Set adComm.ActiveConnection = adConn
adComm.CommandText = " select samaccountname,sn,displayname,givenName,mail,company,Department,st from ' " & strTargetOU & " ' where objectCategory='person' AND objectClass='user' and samaccountname='*' "
adComm.Properties( " Page size " ) = 10000
' adComm.Parameters("Timeout")= 30 'seconds
adComm.Properties( " Searchscope " ) = ADS_SCOPE_SUBTREE
Set rs = adComm.Execute
outcount = 0
rs.MoveFirst
Do Until rs.EOF
on error resume next
UserAccount = rs.Fields( " sAMAccountName " )
usermail = rs.Fields( " mail " )
username = rs.Fields( " sn " )
userdisplay = rs.Fields( " displayname " )
userid = rs.Fields( " givenName " )
company = rs.Fields( " company " )
Department = rs.Fields( " Department " )
st = rs.Fields( " st " )
' usermail=rs.Fields("mail")
set fso = CreateObject ( " Scripting.FileSystemObject " )
set fLog = fso.OpenTextFile(Outputfile & " .csv " , ForAppending, TRUE )
fLog.WriteLine UserAccount & " , " & username & " , " & userdisplay & " , " & userid & " , " & usermail & " , " & company & " , " & Department & " , " & st
set FSO = Nothing
Set fLog = Nothing
outcount = outcount + 1
if outcount mod 1000 = 0 then
Wscript.echo " 已输出 " & outcount & " 个帐号 "
end if
rs.MoveNext
Loop
' set fso=Nothing
' Set flog=Nothing
set adComm = nothing
adConn.close
set adConn = nothing
Wscript.echo " 总计输出 " & outcount & " 个帐号 "
Wscript.echo " END Script "