我编写了一个 VBScript 来枚举特定日期的事件日志中的事件。
第一个查询从今天日期和昨天日期之间的 NT 事件日志事件中选择,
Set colEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where TimeWritten >= '" _
& dtmStartDate & "' and TimeWritten < '" & dtmEndDate & "'")
Run Code Online (Sandbox Code Playgroud)
然后,从上面的查询中,我想从日志文件中提取事件 ID。
For Each objEvent in colEvents
If objEvent.Eventcode = EventNu And (objEvent.LogFile = EventLog) Then
Run Code Online (Sandbox Code Playgroud)
我已将以下内容放入脚本中并且它可以工作,但是我想通过命令行使用参数(即 EventLogCheck.vbs EventNumber LogFile ),但是如果我使用脚本的参数部分,则不会返回任何项目。这让我抓狂。下面的完整脚本使用变量,我已注释掉参数部分,但您可以取消注释并使用它。我究竟做错了什么?谢谢你的帮助!
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 …Run Code Online (Sandbox Code Playgroud) 我的 VBScript 脚本中存在类型不匹配。我知道该值是正确的,但不确定它为什么会出现。
这是脚本终止的行:
WScript.Echo "DNS Server Search Order: " & objNicItem.DNSServerSearchOrder
Run Code Online (Sandbox Code Playgroud)
该脚本需要一个名为的文件servers.txt(其中包含服务器列表,我正在使用我自己的工作站名称进行测试)。
如果我做一个error on resume next脚本工作。但是,如果服务器列表已填充。它显示的信息与对每个主机再次起作用的 fisrt 相同,因此它不正确。
'Input from the command line
If Wscript.Arguments.Count = 0 Then
Wscript.Echo "Usage: DNSAudit.vbs servers.txt "
Wscript.Quit
End If
'Input from txt file
Const ForReading = 1
Set objArgs = WScript.Arguments
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(ObjArgs(0), ForReading)
i = 0
Do Until objTextFile.AtEndOfStream
StrNextLine = objTextFile.ReadLine
objDictionary.Add i, StrNextLine
i = …Run Code Online (Sandbox Code Playgroud)