回答:
Windows 7についてはわかりませんが、XP / Vistaでは、次のコマンドを実行してアップデートを検出およびダウンロードできます。
wuauclt /detectnow /reportnow
動作に問題がある場合は、WSUS Wikiをご覧ください。
それ以外の場合、特定の更新プログラムが必要な場合は、Microsoft Webサイトからダウンロードしてください。インストールを妨げる問題がある場合は、Windows Updateのログが対処するのが面倒であるため、これを見つけるのが最善の方法です。
スクリプトを使用して、更新を同期的に確認、ダウンロード、インストールできます。Windows Coreサーバーの手動でのパッチ適用には、このvbscriptの修正版をよく使用します。
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ビットが適切な場合)、多言語、サービスパック、.NETフレームワーク、およびOfficeパッチ(XP、2000 、2003、2007)。
それらをすべてダウンロードしたら、火曜日にすべてのパッチを更新し、変更のみを取得します。それはカタルージュを取得し、それらは毎日長くなっていますが(OS / Office revごとに多くのメグが今)。
ローカルマシンにファイルをダウンロードしたら、それらのCD / DVDイメージを作成するスクリプトがあります(必要に応じて、OSごとにDVDイメージを自動的に作成します)。
私がしていることは、書き込み保護タブを尊重するSDカードリーダーで、4GBのSDメモリーカードを使用することです。以前は2GBのカードを使用していましたが、Win XPとほとんどのOfficeがその上でビルドできるので、4GBのカードに移りました。
したがって、マシンのトラブルシューティングを行うとき、この以前は書き込み可能なデバイスを信頼できない、ウイルスに感染した可能性のあるマシンに挿入することを信頼します(私はそれについて何も知らないので、感染していると想定します)。
したがって、最初のステップとして最新のパッチを適用できます。
自動実行を使用するか、デバイス(キー、外部HD、CD、DVD、書き込み先)で実行可能ファイルを起動すると、ローカルマシンでWindows Updateサービスを使用してすべての更新を適用するスクリプトが開始されますが、代わりにそれらをダウンロードするためにネットワークを横断するのは、ローカルコピーを使用するだけです。
したがって、WinXPマシンを最新のSPおよびパッチに更新するには1時間以上かかる場合がありますが、途中でネットワークトラフィックがゼロになり、イーサネットケーブルを完全に抜いた状態で実行できます。
驚くほど便利なツール!
AutoUpdateがCDイメージを配布するパッチCDを事前に作成していたように、MicrosoftにMicrosoftしてはいけません。このツールはスクリプトを更新するため、ライセンスを取得したWindowsワークステーションですべてのパッチを入手する必要があります。
現在、duffbeer703による回答にコメントを追加することはできませんので、ここでは別の回答として:
The Internet ArchiveにアーカイブされたWSUSwikiへのリンクの最後の「良い」バージョンはこれです。元の回答で指定されたオプションは、このFAQエントリで説明されています。