本月早些时候,我提出了一个关于如何使用 vbscript 检查服务器是否有任何关键更新待处理的问题。提供的答案效果很好,我将脚本发送到我们的 QA 环境进行额外测试。
有一个服务器可以运行的“保险库”环境,它无法访问 Windows 更新代理,只能通过 WSUS 直接获取 Windows 更新。VBScript 有没有办法直接通过 WSUS 而不是Windows 更新代理检查关键更新。
我收到此代码的 0x8024402C 错误(逻辑取自上一个问题)。它被包装在一个子程序中,该子程序将根据结果给出 PASS 或 FAIL 输出。我已经验证了这在某些服务器上有效。
Dim count
count = 0
'Microsoft Magic
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()
Set searchResult = updateSearcher.Search("IsAssigned=1 and isHidden=0 and IsInstalled=0 and Type='Software'")
'End Microsoft Magic
If searchResult.Updates.Count <> 0 Then ' If Updates were found
For i = 0 to searchResult.Updates.Count - 1 'Just count the number of updates
count = count + 1
Next
objResult.Text = "FAIL"
objComment.Text = "There are " & count & " updates that need to be installed"
Else
objResult.Text = "PASS"
objComment.Text = "All updates are installed"
End If
If NOT len(objResult.Text) Then 'Just in case searchResult produces an error
objResult.Text = "FAIL"
objComment.Text = "Could not query Windows Update Server"
End If
至少,如果我当前的代码无法连接到 Windows 更新代理并像我在上面所做的那样输出,那么我当前的代码是否有办法检查错误,这样我就可以继续我的脚本的其余部分?