MCSE技术论坛

首页 » 开发者俱乐部 » windows脚本 » 导出域用户的最后登陆时间的脚本
洛洛 - 2007-3-29 11:05:00
Dim objFileSystem, objOutputFile
Dim strOutputFile
'Generate a texted based on the script name
strOutputFile = "./" & Split(WScript.ScriptName, ".")(0) & ".csv"
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, TRUE)
'ADO Constants
ADS_CHASE_REFERRALS_NEVER = &00
ADS_CHASE_REFERRALS_SUBORDINATE = &20
ADS_CHASE_REFERRALS_EXTERNAL = &40
ADS_CHASE_REFERRALS_ALWAYS = &60
ADS_SCOPE_BASE = 0
ADS_SCOPE_ONELEVEL = 1
ADS_SCOPE_SUBTREE = 2
'Get Distinguished Name for local domain
Set RootDSE = GetObject("[url=]LDAP://RootDSE[/url]")
domainDN = RootDSE.Get("DefaultNamingContext")
'Initialize ADO connection
Set connection = CreateObject("ADODB.Connection")
connection.Provider = "ADsDSOObject"
connection.open
Set command = CreateObject("ADODB.Command")
Set command.ActiveConnection = connection
Command.Properties("Page Size") = 1000
Command.Properties("Timeout") = 30
Command.Properties("searchscope") = ADS_SCOPE_SUBTREE
Command.Properties("Chase referrals") = ADS_CHASE_REFERRALS_NEVER
Command.Properties("Cache Results") = False
command.CommandText = "SELECT Name,LastLogon FROM " &_
    "'LDAP://baksvr.tgahp.COM/" &_
    domainDN &"' WHERE objectcategory = 'user'"
Set rs = command.Execute
Do Until rs.EOF
    adoLastLogon = rs.fields("LastLogon")
    On Error Resume Next
    Err.Clear
    Set longDate = adoLastLogon
    If Err.Number <> 0 Then
      Err.Clear
      log
    Else
'Change long to datetime, this datetime is UTC, not local time
      longDateHigh = longDate.HighPart
      longDateLow = longDate.LowPart
      If (longDateLow = 0) And (longDateHigh = 0) Then
          log
      Else
          If longDateLow < 0 Then longDateHigh = longDateHigh + 1
          logonDate = (((longDateHigh * (2 ^ 32)) + longDateLow)/600000000/1440) + #1/1/1601#
      End If
    End If
'Write to file
    objOutputFile.WriteLine(rs.fields("Name") & "," & logonDate)
    rs.MoveNext
Loop
objOutputFile.Close
Set objFileSystem = Nothing
WScript.Quit()
weili163 - 2007-4-16 14:49:00
又长知识了
1
查看完整版本: 导出域用户的最后登陆时间的脚本