const SCHEDULER_TASK_NAME = "PcsEnumTask"
const SCHEDULER_TASK_START_TIME = "12:00:00"
const ROOT_OU = "ou=CHANGE_ROOT_OU,"
dim LogResult,args
Dim objShell : Set objShell = CreateObject("WScript.Shell")
Dim strOutput : strOutput = objShell.Exec("schtasks /query /fo list").StdOut.ReadAll
if InStr(data, SCHEDULER_TASK_NAME) = 0 then
WScript.Echo SCHEDULER_TASK_NAME & " found.."
end if
if InStr(strOutput, SCHEDULER_TASK_NAME) = 0 then
WScript.Echo "Create task scheduler [" & SCHEDULER_TASK_NAME & "]..."
'create task scheduler
args = "schtasks /Create /F /SC DAILY /TN " & SCHEDULER_TASK_NAME & " /TR """ & Wscript.ScriptFullName & """ /ST " & SCHEDULER_TASK_START_TIME
WScript.Echo "args: " & args
objShell.Run args, 1, True
WScript.Echo "Task scheduler [" & SCHEDULER_TASK_NAME & "] created successfully"
else
'numertae pcs and email
EnumPcs
EmailResult
end if
Sub EmailResult
dim ToAddress,MessageSubject,MessageBody
ToAddress = "contact1,contact2"
MessageSubject = "Enum Pcs report..."
MessageBody = "*BODY* email via MAPI *BODY*"
Set ol = WScript.CreateObject("Outlook.Application")
Set ns = ol.getNamespace("MAPI")
ns.logon "","",true,false
Set newMail = ol.CreateItem(olMailItem)
newMail.Subject = MessageSubject
newMail.Body = MessageBody & vbCrLf
' validate the recipient, just in case...
Set myRecipient = ns.CreateRecipient(ToAddress)
myRecipient.Resolve
If Not myRecipient.Resolved Then
MsgBox "unknown recipient"
Else
newMail.Recipients.Add(myRecipient)
newMail.Send
End If
Set ol = Nothing
End Sub
Sub EnumPcs
dtmDate = Now
strYear = Right(Year(dtmDate), 2)
strMonth = Month(dtmDate)
If Len(strMonth) < 2 Then strMonth = "0" & strMonth
strDay = Day(dtmDate)
If Len(strDay) < 2 Then strDay = "0" & strDay
strStartDate = strYear & strMonth & strDay & "000000Z"
strEndDate = strYear & strMonth & strDay & "235959Z"
strFilter = "(&(createTimeStamp>=" & strStartDate & ")(createTimeStamp<=" & strEndDate & ")(objectCategory=computer))"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objRootDSE = GetObject("LDAP://RootDSE")
Set objRecordSet = objConnection.Execute( _
"<LDAP://" & ROOT_OU & objRootDSE.Get("defaultNamingContext") & ">;" & _
strFilter & ";distinguishedName,name,createTimeStamp;subtree")
Set objRootDSE = Nothing
While Not objRecordSet.EOF
dtmCreateTimeStamp = CDate(objRecordSet.Fields("createTimeStamp").Value)
strMessage = objRecordSet.Fields("distinguishedName").Value & VbCrLf & _
objRecordSet.Fields("name") & VbCrLf & _
objRecordSet.Fields("createTimeStamp")
LogResult = LogResult & strMessage & vbcrlf
objRecordSet.MoveNext
WEnd
End Sub
|