VBScript - Vet ikke hvorfor mine argumenter ikke brukes på samme måte som variabler

stemmer
2

Jeg har skrevet en VBScript å nummerere hendelser fra hendelsesloggen på en bestemt dag.

Det første spørsmålet velge fra NT hendelsesloggen hendelser mellom dagens dato og gårsdagens dato,

Set colEvents = objWMIService.ExecQuery _
    (Select * from Win32_NTLogEvent Where TimeWritten >= ' _ 
        & dtmStartDate & ' and TimeWritten < ' & dtmEndDate & ') 

Deretter fra spørringen ovenfor jeg ønsker å trekke event id-er fra en loggfil.

For Each objEvent in colEvents
    If objEvent.Eventcode = EventNu And (objEvent.LogFile = EventLog) Then

Jeg har plassert følgende inn i manuset, og det fungerer, men jeg ønsker å bruke argumenter i stedet via kommandolinjen (dvs. EventLogCheck.vbs EventNumber Loggfil), men hvis jeg bruker argumenter secion av skriptet ingen varer returneres. Dette driver meg til vanvidd. Den fullstendige skriptet nedenfor bruker variabler, jeg har kommentert ut argumenter delen, men du kan uncomment dem og leke seg med det. Hva gjør jeg galt? Takk for hjelp!

Const CONVERT_TO_LOCAL_TIME = True
Dim EventLog

EventNu = 18
EventLog = System

'Input from the command line
'If Wscript.Arguments.Count <= 1 Then
'   Wscript.Echo Usage: EventLogCheck.vbs EventNumber LogFile
'   Wscript.Quit
'End If

'EventNu = WScript.Arguments.Item(0)
'EventLog = WScript.Arguments.Item(1)

'For Each Computer In Wscript.Arguments

Set dtmStartDate = CreateObject(WbemScripting.SWbemDateTime)
Set dtmEndDate = CreateObject(WbemScripting.SWbemDateTime)
'DateToCheck = CDate(5/18/2009)
DateToCheck = date
dtmStartDate.SetVarDate DateToCheck, CONVERT_TO_LOCAL_TIME
dtmEndDate.SetVarDate DateToCheck + 1, CONVERT_TO_LOCAL_TIME

strComputer = .
Set objWMIService = GetObject(winmgmts: _
    & {impersonationLevel=impersonate}!\\ & strComputer & \root\cimv2)
Set colEvents = objWMIService.ExecQuery _
    (Select * from Win32_NTLogEvent Where TimeWritten >= ' _ 
        & dtmStartDate & ' and TimeWritten < ' & dtmEndDate & ') 

For Each objEvent in colEvents
 If objEvent.Eventcode = EventNu And (objEvent.LogFile = EventLog) Then
    'Wscript.Echo Category:  & objEvent.Category
    Wscript.Echo Computer Name:  & objEvent.ComputerName
    Wscript.Echo Event Code:  & objEvent.EventCode
    Wscript.Echo Message:  & objEvent.Message
   ' Wscript.Echo Record Number:  & objEvent.RecordNumber
   ' Wscript.Echo Source Name:  & objEvent.SourceName
    Wscript.Echo Time Written:  & objEvent.TimeWritten
    Wscript.Echo Event Type:  & objEvent.Type
   ' Wscript.Echo User:  & objEvent.User
    Wscript.Echo objEvent.LogFile
   End if
Next
'Next
WScript.Echo EventNu
WScript.Echo EventLog
Publisert på 20/05/2009 klokken 13:51
kilden bruker
På andre språk...                            


1 svar

stemmer
3

Argumentene truffet blir behandlet for å være av typen streng. Imidlertid EventNu må være et heltall. Du må derfor konvertere argumentene til riktig type hjelp CIntog CStr:

EventNu = CInt(WScript.Arguments.Item(0))
EventLog = CStr(WScript.Arguments.Item(1))
Svarte 20/05/2009 kl. 13:59
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more