Windows Update-希望使用联机而非WSUS



我正在尝试调整此代码,以便它强制Windows Update搜索从Microsoft而不是本地WSUS服务器联机检查。如果我在公司网络之外运行此代码,但我希望从公司网络运行并绕过WSUS服务器,则此代码运行良好。

    Private Sub CheckForUpdates()
    Dim objUpdateSession As WUApiLib.UpdateSession
    Dim objUpdateSearcher As WUApiLib.UpdateSearcher
    Dim objSearchResults As WUApiLib.ISearchResult
    Dim objUpdateDownloader As WUApiLib.UpdateDownloader
    Dim NowInstallThem As WUApiLib.UpdateInstaller
    Dim NumPatches As Integer = -1
    Dim Updates As New WUApiLib.UpdateCollection
    Try
        objUpdateSession = New WUApiLib.UpdateSession
        objUpdateSearcher = objUpdateSession.CreateUpdateSearcher()
        objSearchResults = objUpdateSearcher.Search("IsInstalled=0 and Type='Software'")
        NumPatches = objSearchResults.Updates.Count
        MessageBox.Show("Number of patches: " & NumPatches.ToString)
        Dim patch As WUApiLib.IUpdate
        For a = 0 To NumPatches - 1
            patch = objSearchResults.Updates.Item(a)
            Updates.Add(patch)
        Next
        If NumPatches > 0 Then
            objUpdateDownloader.Updates = Updates
            objUpdateDownloader.Download()
            MessageBox.Show("patches downloaded")
            NowInstallThem.Updates = Updates
            NowInstallThem.Install()
            MessageBox.Show("patches installed")
        End If
    Catch ex As Exception
    End Try
End Sub

这是由管理的

UseWUServer

在客户端注册表项上

HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU
  1. 保存密钥的值
  2. 将其设置为";0"
  3. 安装一个计时器,可在10秒后重置该值
  4. 立即运行搜索searchResult = updateSearcher.Search(...)

如果密钥或值不存在,则它已使用Microsoft Update Servers,。

这有点让人生气,但这是我找到的唯一方法。

意识到这是一个老问题(有一个相当新的答案),实现这一点的方法是将IUpdateSearcher(在最初的示例中,objUpdateSearcher实例)的ServerSelection属性设置为ssWindowsUpdate(2)。

相关内容

  • 没有找到相关文章

最新更新