【この記事で分かること】
読了時間:約10分
システム管理者やIT担当者なら一度は使ったことがあるであろうwuaucltコマンド。これは、Windows Updateをコマンドラインから制御するためのツールです。
GUIで手動更新をクリックするのと同じことをコマンドで実行できるため、リモート管理やスクリプト化、トラブルシューティングに非常に便利です。
私自身、IT管理者として500台以上のWindows端末を管理していた時期に、このコマンドには何度も助けられました。特に「どうしても更新が進まないPC」に対して、wuaucltコマンドで強制実行することで問題が解決したケースは数え切れません。
ある日、経理部門から「パソコンが遅い」とヘルプデスクに連絡がありました。リモートで確認すると、Windows Updateが3ヶ月以上実行されておらず、しかもGUIから手動実行しても「更新プログラムを確認しています…」のまま24時間経っても進まない状態でした。
そこで私が実行したのが、以下のコマンドです:
wuauclt /detectnow
wuauclt /updatenow
すると、わずか5分で更新プログラムの検出が完了し、無事にインストールまで進みました。このように、GUIがハングしている場合でもコマンドラインなら正常に動作することが多いのです。
wuaucltコマンドは、管理者権限でコマンドプロンプトまたはPowerShellを起動して実行します。
起動方法:
基本構文:
wuauclt [オプション]
| オプション | 説明 | 使用例 |
|---|---|---|
| /detectnow | Windows Updateサーバーに接続して更新プログラムを検出 | 定期的な更新チェックをスキップして即座に検出 |
| /updatenow | 検出済みの更新プログラムを今すぐインストール | 手動で即座に更新を適用したい場合 |
| /reportnow | Windows Updateの状態をWSUSサーバーに報告 | WSUS環境でクライアントの状態を即座に報告 |
| /ShowSettingsDialog | Windows Update設定ダイアログを表示 | GUI設定画面を素早く開きたい場合 |
| /ResetAuthorization | 認証トークンをリセット | 更新サーバーとの認証エラー解決時 |
まず、最新の更新プログラムを検出します。
wuauclt /detectnow
このコマンド実行後、数分待つと、Windows Updateサービスがバックグラウンドで更新プログラムの一覧を取得します。
検出が完了したら、以下のコマンドでインストールを開始します。
wuauclt /updatenow
インストールの進行状況は、設定 > 更新とセキュリティ > Windows Update から確認できます。
もしwuaucltコマンドを実行しても反応がない場合、Windows Updateサービスを再起動します。
net stop wuauserv
net start wuauserv
その後、再度wuaucltコマンドを実行してください。
企業環境でWSUS(Windows Server Update Services)を使用している場合、wuaucltコマンドは特に重要です。
クライアントPCがWSUSサーバーに対して即座に状態を報告させるには、以下を実行します。
wuauclt /detectnow /reportnow
これにより、WSUSサーバー側の管理コンソールで最新のクライアント状態を確認できます。
グループポリシーでWindows Update設定を変更した直後、クライアントPCに反映されたかを確認するには、以下の手順を実行します:
gpupdate /forcenet stop wuauserv && net start wuauservwuauclt /detectnowこの手順で、ポリシー変更が正しく反映されているかをリアルタイムで確認できます。
実は、Windows 10バージョン1709以降、wuaucltコマンドは非推奨とされています。Microsoft公式ドキュメントでは、代わりにUsoClient.exeの使用を推奨しています。
Windows 11では、以下のコマンドを使用することが推奨されます:
UsoClient.exe StartScan
UsoClient.exe StartDownload
UsoClient.exe StartInstall
ただし、2026年現在でも、wuaucltコマンドは引き続き動作します。完全に削除されているわけではないため、既存のスクリプトは問題なく使えます。
私の推奨は以下です:
原因:Windows Updateサービスが停止している、または応答していない
解決法:
net stop wuauserv
net stop bits
net start bits
net start wuauserv
wuauclt /detectnow
原因:管理者権限でコマンドプロンプトを起動していない
解決法:管理者権限で再度起動して実行
原因:Windows Updateキャッシュが破損している
解決法:
net stop wuauserv
rd /s /q C:\Windows\SoftwareDistribution
net start wuauserv
wuauclt /detectnow
SoftwareDistributionフォルダを削除することで、キャッシュがリセットされます。
複数台のPCに対してwuaucltコマンドを実行する場合、バッチファイルやPowerShellスクリプトを活用しましょう。
@echo off
echo Windows Update強制実行スクリプト
echo.
echo サービス再起動中...
net stop wuauserv
net start wuauserv
echo 更新プログラム検出中...
wuauclt /detectnow
timeout /t 60
echo 更新プログラムインストール中...
wuauclt /updatenow
echo 完了しました。
pause
このバッチファイルを管理者権限で実行すれば、一連の作業が自動化されます。
wuaucltコマンドは、Windows Updateのトラブルシューティングや強制実行に非常に有効なツールです。
特に、以下のような場面で活躍します:
ただし、Windows 11以降ではUsoClient.exeへの移行も視野に入れておくと良いでしょう。
システム管理の現場では、こうしたコマンドラインツールを使いこなせるかどうかで作業効率が大きく変わります。ぜひ、日々の業務に活用してみてください。