Answers:
不确定Windows 7,但对于XP / Vista,可以运行以下命令来检测和下载更新:
wuauclt /detectnow /reportnow
如果您无法正常运行,请查看WSUS Wiki。
否则,如果您需要特定的更新,只需从Microsoft网站下载即可。如果存在阻止您安装的问题,那么这是找出问题的最佳方法,因为Windows Update日志令人讨厌。
您可以使用脚本来同步检查,下载和安装更新。我经常使用此vbscript的修改版本来手动修补Windows Core服务器。
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
WScript.Echo "List of applicable items on the machine:"
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If
WScript.Echo vbCRLF & "Creating collection of updates to download:"
Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
For I = 0 to searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
addThisUpdate = false
If update.InstallationBehavior.CanRequestUserInput = true Then
WScript.Echo I + 1 & "> skipping: " & update.Title & _
" because it requires user input"
Else
If update.EulaAccepted = false Then
WScript.Echo I + 1 & "> note: " & update.Title & _
" has a license agreement that must be accepted:"
WScript.Echo update.EulaText
WScript.Echo "Do you accept this license agreement? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo
If (strInput = "Y" or strInput = "y") Then
update.AcceptEula()
addThisUpdate = true
Else
WScript.Echo I + 1 & "> skipping: " & update.Title & _
" because the license agreement was declined"
End If
Else
addThisUpdate = true
End If
End If
If addThisUpdate = true Then
WScript.Echo I + 1 & "> adding: " & update.Title
updatesToDownload.Add(update)
End If
Next
If updatesToDownload.Count = 0 Then
WScript.Echo "All applicable updates were skipped."
WScript.Quit
End If
WScript.Echo vbCRLF & "Downloading updates..."
Set downloader = updateSession.CreateUpdateDownloader()
downloader.Updates = updatesToDownload
downloader.Download()
Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")
rebootMayBeRequired = false
WScript.Echo vbCRLF & "Successfully downloaded updates:"
For I = 0 To searchResult.Updates.Count-1
set update = searchResult.Updates.Item(I)
If update.IsDownloaded = true Then
WScript.Echo I + 1 & "> " & update.Title
updatesToInstall.Add(update)
If update.InstallationBehavior.RebootBehavior > 0 Then
rebootMayBeRequired = true
End If
End If
Next
If updatesToInstall.Count = 0 Then
WScript.Echo "No updates were successfully downloaded."
WScript.Quit
End If
If rebootMayBeRequired = true Then
WScript.Echo vbCRLF & "These updates may require a reboot."
End If
WScript.Echo vbCRLF & "Would you like to install updates now? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo
If (strInput = "Y" or strInput = "y") Then
WScript.Echo "Installing updates..."
Set installer = updateSession.CreateUpdateInstaller()
installer.Updates = updatesToInstall
Set installationResult = installer.Install()
'Output results of install
WScript.Echo "Installation Result: " & _
installationResult.ResultCode
WScript.Echo "Reboot Required: " & _
installationResult.RebootRequired & vbCRLF
WScript.Echo "Listing of updates installed " & _
"and individual installation results:"
For I = 0 to updatesToInstall.Count - 1
WScript.Echo I + 1 & "> " & _
updatesToInstall.Item(i).Title & _
": " & installationResult.GetUpdateResult(i).ResultCode
Next
End If
这样做似乎很吸引人,但是我当然没有在Windows 7下对其进行过测试。如果需要的话,还有指向另一篇文章的链接,该文章用于定位特定的更新。
还有一个Powershell模块,可以提供类似的体验。
快速浏览后,我还发现该第三方应用程序也使用了更新API,但具有更多选项(尽管需要您信任第三方代码)。
如果您必须打补丁Windows操作系统,尤其是在全新安装后,请认真查看Offline Updater。
它使用脚本来下载您建议的所有修补程序(因此酌情选择Win2000,Win XP,Win 2003,Vista,Win2008,Win2012 32和64位),多语言,Service Pack,.NET框架和Office修补程序(XP,2000 ,2003,2007)。
将它们全部下载后,只需在星期二更新每个补丁,然后仅获取更改。尽管它确实会引起轰动,并且它们每天都在变长(每个OS / Office版本现在有很多兆)。
一旦下载了本地计算机上的文件,就会有一个脚本来制作它们的CD / DVD映像(如果需要,它将自动针对每个OS的DVD映像自动生成CD / DVD映像)。
我要做的是在SD卡读卡器中使用4GB SD存储卡,该读卡器具有写保护选项卡。我曾经使用2GB的卡,但是我几乎无法容纳Win XP,并且现在大多数Office都基于它构建,因此我转向了4GB的卡。
因此,在对机器进行故障排除时,我相信将这个以前可写的设备插入到不受信任的,可能是受病毒感染的机器中(因为我对此一无所知,因此我假设它已被感染),并且知道我的设备已被写保护。
因此,我可以将其更新为第一步。
如果您使用自动运行,或在设备(密钥,外部HD,CD,DVD,无论您在何处写入)上启动可执行文件,它将启动一个脚本,该脚本使用本地计算机上的Windows Update服务来应用所有更新,但是只需下载本地副本即可。
因此,将WinXP计算机更新到最新的SP和修补程序可能仍需要1个多小时,但是在此过程中网络流量为零,您可以在完全拔掉以太网电缆的情况下进行操作。
非常有用的工具!
不应该像Microsoft那样,像AutoUpdate的家伙那样运行Microsoft,他们正在预先构建补丁CD,该补丁CD分发了CD映像。此工具将更新脚本,并且您必须在许可的Windows工作站上获取所有补丁。
我目前不能添加评论的答案被duffbeer703,所以在这里作为一个单独的答案:
Internet存档中存档的WSUSwiki链接的最后一个“良好”版本是this。原始答案中给出的选项在此FAQ条目中进行了描述。