使用VBScript for Windows Updates写入Windows日志?

时间:2013-05-30 19:01:20

标签: windows vbscript

我正在使用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事件日志中没有添加任何内容。如何将此信息写入日志?

2 个答案:

答案 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方法,它可能会做你需要的一切。

http://technet.microsoft.com/en-us/library/ee176682.aspx

了解详情