洛洛 - 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
又长知识了