如何强制Windows检查更新?


25

重新安装Windows(XP或7)后,如何“强制” Windows更新?

我不想在一周后获得Windows的“旧”更新,是否可以“一步”完成?是否有任何“神奇的”命令强制Windows检查更新,如果有,请安装它们?

Answers:


12

您可以使用脚本自动检查并安装更新。这将适用于XP或Windows 7。

有许多脚本可供下载,这是我的

' Written in 2007 by Harry Johnston, University of Waikato, New Zealand.
' This code has been placed in the public domain.  It may be freely
' used, modified, and distributed.  However it is provided with no
' warranty, either express or implied.
'
' Exit Codes:
'   0 = scripting failure
'   1 = error obtaining or installing updates
'   2 = installation successful, no further updates to install
'   3 = reboot needed; rerun script after reboot
'
' Note that exit code 0 has to indicate failure because that is what
' is returned if a scripting error is raised.
'

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

Set updateSearcher = updateSession.CreateUpdateSearcher()
Set updateDownloader = updateSession.CreateUpdateDownloader()
Set updateInstaller = updateSession.CreateUpdateInstaller()

Do

  WScript.Echo
  WScript.Echo "Searching for approved updates ..."
  WScript.Echo

  Set updateSearch = updateSearcher.Search("IsInstalled=0")

  If updateSearch.ResultCode <> 2 Then

    WScript.Echo "Search failed with result code", updateSearch.ResultCode
    WScript.Quit 1

  End If

  If updateSearch.Updates.Count = 0 Then

    WScript.Echo "There are no updates to install."
    WScript.Quit 2

  End If

  Set updateList = updateSearch.Updates

  For I = 0 to updateSearch.Updates.Count - 1

    Set update = updateList.Item(I)

    WScript.Echo "Update found:", update.Title

  Next

  WScript.Echo

  updateDownloader.Updates = updateList
  updateDownloader.Priority = 3

  Set downloadResult = updateDownloader.Download()

  If downloadResult.ResultCode <> 2 Then

    WScript.Echo "Download failed with result code", downloadResult.ResultCode
    WScript.Echo

    WScript.Quit 1

  End If

  WScript.Echo "Download complete.  Installing updates ..."
  WScript.Echo

  updateInstaller.Updates = updateList

  Set installationResult = updateInstaller.Install()

  If installationResult.ResultCode <> 2 Then

    WScript.Echo "Installation failed with result code", installationResult.ResultCode

    For I = 0 to updateList.Count - 1

      Set updateInstallationResult = installationResult.GetUpdateResult(I)
      WScript.Echo "Result for " & updateList.Item(I).Title & " is " & installationResult.GetUpdateResult(I).ResultCode

    Next

    WScript.Quit 1

  End If

  If installationResult.RebootRequired Then

    WScript.Echo "The system must be rebooted to complete installation."

    WScript.Quit 3

  End If

  WScript.Echo "Installation complete."

Loop 

您可以从命令行运行,如下所示:

cscript wsusupdate.vbs

我的脚本仅具有最低限度的功能,但可能仍然有用。还有其他具有许多其他功能的此类脚本,请尝试使用Google搜索。


我将尝试这个!同时,有人对这个脚本有经验吗?
LanceBaynes

该脚本以退出<59, 3> <null>: 0x80240044。知道为什么失败了吗?我曾尝试查找此引用的方法,但无法弄清楚发生了什么。你能为我指出正确的方向吗?
daviesgeek 2014年

@daviesgeek:0x80240044是WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED,即,您需要以提升的权限运行脚本。
哈里·约翰斯顿

啊...谢谢 我如何从命令行提升权限?(对不起,我是Linux专家,不是Windows专家...)
daviesgeek 2014年

1
Vista / Win7:打开“开始”菜单,键入cmd,然后按control-shift-ENTER,而不仅仅是ENTER。在Windows 8上,我认为Windows-X快捷键会弹出一个包含管理命令行的菜单。或在任一系统上,都可以通过资源管理器找到cmd.exe,右键单击并选择“以管理员身份运行”。
哈里·约翰斯顿

41

除了使用Windows Update的常规方法之外,您还可以从命令行强制进行检查。

打开管理员命令提示符并运行:

C:\> %windir%\system32\wuauclt.exe /detectnow

Wuauclt.exe是Windows Update的自动更新客户端,用于从Microsoft Update检查可用更新(对于MS Windows平台的各种版本)。

这不会强制安装。


1
只需补充:这在XP,Vista和7上都可以使用
加拿大卢克·雷因斯特尼·蒙尼卡2011年

@Luke它也适用于Windows 2000 SP4。:)
2011年

1
但是,对于全新安装,最好通过GUI(对于Windows Vista +)或Windows Update网站(Pre-Vista)检查更新。我认为这将使下载过程具有更高的优先级。默认情况下,BITS仅在网络连接不繁忙时才下载更新。
billc.cn 2011年

2
简写为Windows键+ R,然后键入wuauclt / detectnow,然后按Enter。
史蒂夫·拉斯伯恩

5

要检查更新,请转到“控制面板”,“安全性”,“ Windows Update”,然后单击“检查更新”。

在此处输入图片说明


在winXP上?:)
LanceBaynes

在Windows XP中,按开始->所有程序->(Windows | Microsoft)更新,然后执行自动或手动搜索。
詹斯·埃拉特

1
这不适用于winXP
M. of CA

2

强制进行真正的重新扫描更新的另一种方法是通过删除存储在%windir%\ Windows \ SoftwareDistribution \ Download中的所有更新来擦拭板岩:

    NET STOP wuauserv
    RD /S /Q %windir%\SoftwareDistribution\Download
    NET START wuauserv

然后转到Windows Update,然后单击“检查更新”。这可能需要一个小时,因为系统卷上的每个可更新文件都已检查(随后的“检查更新”将很快)。这种方法至少在MS认为的范围内,可以消除错误,减少更新并产生干净的最新系统。


谢谢,很好的回答!我在寻找比其他答案更有力的东西。我的Windows 10安装已以某种方式被破坏,并且更新似乎不再出现。我需要强制对其进行更新,希望它能起作用。
AzP

1

我正在使用名为wuinstall的第二方工具来更新新的Windows安装。这样您就可以自动化整个更新过程,包括自动重启。我认为这是在没有用户参与的情况下更新最新Windows的最快方法之一。


0

我发现如果作为Windows 7全新安装的一部分,升级了IE或尚未运行IE并回答了介绍性问题,则Windows Update会给您一个错误。我还没有找到一种无需通过GUI即可将Windows Update切换到Microsoft Update的方法,因此我手动启动IE,对其进行了初始化,然后通过GUI设置Windows Update,因此可以切换到Microsoft Update并避免初始错误。你的旅费可能会改变。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.