0

我正在使用Microsoft 的这个示例脚本来执行 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 事件日志中没有添加任何内容。我应该怎么做才能将此信息写入日志?

4

2 回答 2

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)

由于您正在安装更新,我想您已经以管理员权限运行脚本,对吗?

于 2013-05-30T19:28:55.343 回答
-1

为什么不只使用 LogEvent 方法,它可能会做你需要的一切。

在http://technet.microsoft.com/en-us/library/ee176682.aspx阅读更多内容

于 2013-05-31T00:04:33.940 回答