导出当前域内的所有帐号
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"
posted on 2010-07-13 11:13 alronzhang 阅读(722) 评论(0) 编辑 收藏 举报