Vbscript 在Windows Update搜索超时时在vbs中抑制弹出窗口

Vbscript 在Windows Update搜索超时时在vbs中抑制弹出窗口,vbscript,windows-update,Vbscript,Windows Update,我有一个vb脚本,它检查是否有未完成的更新。有时windows search会返回错误(例如503),并生成错误弹出窗口。由于我不熟悉vbs,我不知道从哪里开始寻找解决方案 Set updateSession = CreateObject("Microsoft.Update.Session") Set updateSearcher = updateSession.CreateupdateSearcher() Set searchResult =

我有一个vb脚本,它检查是否有未完成的更新。有时windows search会返回错误(例如503),并生成错误弹出窗口。由于我不熟悉vbs,我不知道从哪里开始寻找解决方案


        Set updateSession = CreateObject("Microsoft.Update.Session")
        Set updateSearcher = updateSession.CreateupdateSearcher()
        Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'")
问题发生在第3行。它说:

Script: C:\path-to-my-script\my-script.vbs Line: 3 Char: 1 Error: 0x80244022 Code: 80244022 Source: (null) 脚本:C:\my Script\my-Script.vbs的路径 线路:3 字符:1 错误:0x80244022 代码:80244022 来源:(空)
如何防止弹出窗口生成,或获取其句柄并立即关闭它?

错误0x80244022表示更新服务器HTTP服务暂时不可用(无论出于何种原因)。有关连接相关错误代码的列表,请参阅

要处理此错误,请将其置于错误恢复下一步时的
和错误转到0时的
语句之间:

Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()

On Error Resume Next
Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'")
If Err Then
  'add logging routine here
  WScript.Quit 1
End If
On Error Goto 0

'more code here
请注意,在调用
Search
方法时,如果出现任何错误,上述命令将不加区别地终止脚本。如果您想以不同的方式处理不同的错误,例如,可以在条件中放入
Select
语句:

If Err Then
  Select Case Err.Number
    Case &h80244022
      'quit immediately
      WScript.Quit 1
    Case &h8009033F
      'wait some time and retry
      WScript.Sleep 900000
      Set searchResult = updateSearcher.Search(...)
    Case &h...
      'just log a message and continue
      ...
  End Select
End If

谢谢,我知道错误的原因是什么,但由于我自己从未编写过vbscript,我不知道如何处理它,也不知道从哪里开始搜索。非常感谢这两个指针,我将从那里开始。