Vbscript Windows update downloader.Download()失败

Vbscript Windows update downloader.Download()失败,vbscript,jscript,windows-update,Vbscript,Jscript,Windows Update,我在微软网站上看到一个关于Windows Update的vbscript示例程序(名为WUA_SearchDownloadInstall.vbs) 他的脚本运行良好,直到达到 downloader.Download() 在该行上,CMD窗口输出 C:\wu-install\WUA_SearchDownloadInstall.vbs(37, 1) (null): 0x80240044 通过在downloader.Download()之前添加printf行,我可以看到在Download()中立

我在微软网站上看到一个关于Windows Update的vbscript示例程序(名为WUA_SearchDownloadInstall.vbs)

他的脚本运行良好,直到达到

downloader.Download()
在该行上,CMD窗口输出

C:\wu-install\WUA_SearchDownloadInstall.vbs(37, 1) (null): 0x80240044
通过在downloader.Download()之前添加printf行,我可以看到在Download()中立即断言错误

我的问题是:如何找到线索来知道错误原因?可能有办法捕获异常并让输出一些详细的错误消息

我在这篇文章()的帮助下尝试了,并围绕问题行写了以下内容:

On Error Resume Next 
downloader.Download()
If Err.Number <> 0 Then
    WScript.Echo Err.Description
    WScript.Quit 4
End If
On Error Goto 0
剩下的问题是:如何从Download()获取错误代码,以便检查错误原因。这一页看起来太粗糙了,我找不到答案


再次等待你的帮助。谢谢。

您收到此错误,因为Windows Updater API需要提升权限。在提升的命令提示符下启动脚本应该可以解决这个问题

请注意,您应该确保已连接到internet,Windows Update服务已启用,并且没有挂起的更新安装(即在关机时等待安装)。这些事情也会导致错误

[编辑]

您应该能够从库内部检索状态。
Download
方法返回一个值。将其结果指定给变量可以防止脚本崩溃。如果没有,请尝试使用“错误转到下一步”上的
来绕过它。您可以在下面找到各种结果代码和错误代码


谢谢。你说得对。在Win7上以管理员身份运行可以解决此问题。但如果程序提供一种方法告诉用户是什么导致了错误,那就更好了。如果没有,我们必须逐个检查遇到的3+个案例中的哪一个。一个合适的脚本将检查所有三个实例,以便彻底检查。然而,这个特殊的错误仅仅是因为没有提升权限。那么将来会有第四个权限呢?应该有办法从库中获取错误描述。我强烈建议您开始一个新问题,而不是编辑这个问题。你原来的问题已经解决了。您可以包含指向此问题的链接作为背景信息。
On Error Resume Next 
downloader.Download()
If Err.Number <> 0 Then
    WScript.Echo Err.Description
    WScript.Quit 4
End If
On Error Goto 0
var downloader = updsession.CreateUpdateDownloader() 
downloader.Updates = updatesToDownload
try {
    downloader.Download()
}
catch(err) {
    WScript.Echo("Oops, Download error.")
    WScript.Echo("Possible reason:")
    WScript.Echo("* On Windows Vista/7, This requires you Run as Administrator.")
    WScript.Quit(3)
}