Windowsパソコンで、何らかの原因でエラーとなり、Windows Updateの「更新プログラムの確認」が出来ないことがあります。
「更新プログラムの確認」をクリックしても…
“現在サービスが実行されていないため、Windows Update で更新プログラムを確認できません。このコンピューターの再起動が必要な可能性があります。”とだけ言われ、試しに再起動しても同じことの繰返しなので、とりあえず、MicrosoftサポートのFix itを行いますが、ほとんど解決に至りません。
「コントロールパネル」>「管理ツール」>「サービス」の[Background Intelligent Transfer Service]を確認し、[状態]が[開始]でなければ[開始]しても解決せず…。
こういった場合、原因の特定は困難ですが、とりあえずはエラーを回避して更新プログラムのダウンロードとインストールを実行することが優先されます。ほとんどの場合、Windows Update のキャッシュ情報をクリアすることで回避できます。コマンドを実行することでキャッシュのある[SoftwareDistribution]フォルダと[catroot2]フォルダがリネームされてクリアされます。
ただし、キャッシュをクリアすると、以下のような影響があります。
- [更新履歴の表示] の情報がクリアされます。(更新プログラムの適用状態や今後の適用動作には全く影響ありません。また、更新プログラムのインストール状況は「コントロールパネル」>「プログラムと機能」の[インストールされた更新プログラム]で確認出来ます。)
- 更新プログラムの「非表示」設定が解除されます。
- 次回更新時にキャッシュされていた情報を再ダウンロードすることになるので、情報の取得に時間がかかることが予想されます。
下記コマンドラインをテキストエディタにコピペしてバッチファイルを作り(拡張子.batで保存)、「管理者として実行」することでキャッシュがクリアされます。
その後、PCを再起動すれば、エラーを回避して「更新プログラムの確認」が出来るようになります。
Windows 7の場合
net stop wuauserv net stop bits cd %systemroot% ren SoftwareDistribution SoftwareDistributionold net start bits net start wuauserv net stop cryptsvc cd %systemroot%\system32 ren catroot2 catroot2old net start cryptsvc
Windows 10の場合
net stop usosvc net stop dosvc net stop wuauserv net stop bits cd %systemroot% ren SoftwareDistribution SoftwareDistributionold cd %ALLUSERSPROFILE% del Microsoft\Network\Downloader\qmgr0.dat del Microsoft\Network\Downloader\qmgr1.dat net start bits net start wuauserv net stop cryptsvc cd %systemroot%\system32 ren catroot2 catroot2old net start cryptsvc net start dosvc net start usosvc
各コマンドの意味は下記の通りです。
Windows 7及び10
net stop wuauserv
[自動更新] または [Automatic Updates] または [Windows Update] サービスの停止。
net stop bits
[Background Intelligent Transfer Services] サービスを停止。
net start bits
cd %systemroot%
システムルートフォルダに移動。
ren SoftwareDistribution SoftwareDistributionold
[SoftwareDistribution]フォルダを[SoftwareDistributionold]にリネーム。
net start wuauserv
[自動更新] または [Automatic Updates] または [Windows Update] サービスを開始。
[Background Intelligent Transfer Services] サービスを開始。
net stop cryptsvc
[カタログ データベース]サービス、[保護ルート]サービス、[ルート証明書自動更新]サービス、[キー ]サービスを停止。
cd %systemroot%\system32
システムルートフォルダの[system32]フォルダに移動。
ren catroot2 catroot2old
[catroot2]フォルダ(「更新プログラムなどを確認する署名」を保管するフォルダ)を[catroot2old]にリネーム。
net start cryptsvc
[カタログ データベース]サービス、[保護ルート]サービス、[ルート証明書自動更新]サービス、[キー ]サービスを開始。
Windows 10のみ
net stop usosvc
[Update Orchestrator] サービスを停止。
net stop dosvc
[Delivery Optimization] サービスを停止。
cd %ALLUSERSPROFILE%
[ProgramData]フォルダに移動。
del Microsoft\Network\Downloader\qmgr0.dat del Microsoft\Network\Downloader\qmgr1.dat
BITSのジョブを削除します。BITS(アイドル中のネットワーク回線の帯域幅を使用して、バックグラウンドで更新プログラムをダウンロードする機能)において、ダウンロードに失敗した更新プログラムが BITS キューに滞留している場合を想定し、上記のコマンドを順番に実行してキューから削除します。
net start dosvc
[Delivery Optimization] サービスを開始。
net start usosvc
[Update Orchestrator] サービスを開始。
以下を参考にさせていただきました。
コメント