My Space

导航

导出当前域内的所有帐号


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编辑  收藏  举报