Vbscript 在Windows Update搜索超时时在vbs中抑制弹出窗口
我有一个vb脚本,它检查是否有未完成的更新。有时windows search会返回错误(例如503),并生成错误弹出窗口。由于我不熟悉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 =
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,我不知道如何处理它,也不知道从哪里开始搜索。非常感谢这两个指针,我将从那里开始。