我正在使用Microsoft的this sample script来执行Windows更新。但是,每当安装更新时,我都想将其写入自定义日志。现在,我已经调整了代码的最后部分如下:
For I = 0 to updatesToInstall.Count - 1
WScript.Echo I + 1 & "> " & _
updatesToInstall.Item(i).Title & _
": " & installationResult.GetUpdateResult(i).ResultCode
Set WshShell = WScript.CreateObject("WScript.Shell")
addLog = "eventcreate /l Application /t Information /so Test-QA /id 74 /d Windows update added: " & updatesToInstall.Item(i).Title
WshShell.Run addLog
Next
End If
但是,安装更新时,Windows事件日志中没有添加任何内容。如何将此信息写入日志?
答案 0 :(得分:0)
eventcreate
可能会失败,因为您没有在日志消息周围添加引号。改变
addLog = "eventcreate /l Application /t Information /so Test-QA /id 74 /d Windows update added: " & updatesToInstall.Item(i).Title
到
addLog = "eventcreate /l Application /t Information /so Test-QA /id 74 " _
& "/d ""Windows update added: " & updatesToInstall.Item(i).Title & """"
您可以检查通过Run
方法运行的命令的返回码,如下所示:
rc = WshShell.Run(addLog)
If rc <> 0 Then
WScript.Echo "Error: Command exited with return code " & rc
End If
要查看命令输出,请在命令前添加%COMSPEC% /k
并在可见窗口中运行它:
addLog = "%COMSPEC% /k eventcreate ..."
rc = WshShell.Run(addLog, 1, False)
由于您正在安装更新,我认为您已经在运行具有管理员权限的脚本,对吗?
答案 1 :(得分:-1)
为什么不使用LogEvent方法,它可能会做你需要的一切。
了解详情