
电视节目中常有这样一类经得起考验的情节:安全系统的安全性是如此之高,以致任何人都不能通过,包括设计、建造它的人,最终也会被其困住。在电视上看到这类情节时,您会忍俊不禁。但在现实生活中遇到这类事情时,就没那么好笑了。
例如,看看下面这个用来帮助我们审核“安全”事件日志的简单的小脚本。该脚本的全部功能就是连接到计算机上的“安全”事件日志,并检索事件代码为 529:“未知用户名或无效密码”的所有事件。正如您所看到的,这是个非常简单的小脚本:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colEvents = objWMIService.ExecQuery _
("Select * From Win32_NTLogEvent Where LogFile = 'Security' AND EventCode = '529'")
For Each objEvent in colEvents
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
Next
您可能已猜出了可笑之处(你们这些家伙电视节目看得太多了!):当我们运行该脚本时,它不返回任何数据,即使我们已确知“安全”事件日志中存在事件代码为 529 的记录。我们不但未得到任何数据,就连任何错误消息也没提供。诚然,我们不希望随便什么人都能进入并阅读“安全”事件日志,但这个脚本未免做得过火了一点。
这个脚本的问题到底出在哪儿?