前書き
MicrosoftのWSUSサポートチームが、Windows Updateが正常に実施できないときに実施する対処として、下記のブログを公開しています。
Windows Update クライアントの情報をクリアにする手順
上記に記載されている対処を、コマンド一括で実行するソースコードを作成してみました。
対象OSは、1703以降のWindows 10とWindows Server 2016です。(1703より前のバージョンのWindows 10は作成していません)
※※内容を確認の上、自己責任で実施ください※※
※※WSUSサポートの下記注意事項を引用します※※
・[更新履歴の表示] の情報がクリアされます。(作業履歴の情報ですので 現時点の適用状態や今後の適用動作には全く影響ありません)
・過去クライアント側の操作によって「非表示」設定(処理対象から除外)していた更新プログラムが存在する場合は、その設定が解除されます。
・次回 WSUS にアクセスした際にキャッシュされていた情報を再ダウンロードします。そのため、同時に多数の端末が実施した場合にはネットワークの負荷が発生する場合があります。
実行の内容
実行する内容は以下の通りです。
- 自動更新サービスとBITSサービスを停止する。
※停止するサービスは下記。
“Background Intelligent Transfer Service”(サービス名:BITS)
“Windows Update”サービス(サービス名:wuauserv)
Windows Server 2016の場合は下記も追加で停止。
“Data Sharing Service”(サービス名:DsSvc)
“Update Orchestrator Service for Windows Update”(サービス名:UsoSvc) - “%systemroot%\SoftwareDistribution.old\”フォルダの存在チェック(フォルダが存在する場合は削除する)
- “%systemroot%\SoftwareDistribution\”フォルダをリネームする。
- BITSのジョブを削除する(”%ALLUSERSPROFILE%\Microsoft\Network\Downloader\”フォルダの中身を削除)
- 自動更新サービスとBITSサービスを開始する。
※開始するサービスは下記。
“Background Intelligent Transfer Service”(サービス名:BITS)
“Windows Update”サービス(サービス名:wuauserv)
Windows Server 2016の場合は下記も追加で開始。
“Data Sharing Service”(サービス名:DsSvc)
“Update Orchestrator Service for Windows Update”(サービス名:UsoSvc) - 更新プログラム確認を実施する。
ソースコード
以下がソースコードです。
このコードを全コピーしてメモ帳などに貼り付け、「ファイル名を指定して保存」から、[ファイルの種類]を「すべてのファイル」にして、拡張子を「.bat」にして保存します。
※保存したファイルを実行するときは、「管理者として実行」してください。
1703以降Windows 10用
echo off
REM 1703以降のWindows 10でWindows Updateの状態をクリアにするコマンド
REM 自動更新サービスとBITSサービスの停止
net stop wuauserv
net stop bits
REM "SoftwareDistribution.old"フォルダ存在チェック
if exist "%systemroot%\SoftwareDistribution.old\" (
echo Distributionフォルダをを削除します。
rd /s /q "%systemroot%\SoftwareDistribution.old\"
goto LABEL_EXECUTE
) else (
goto LABEL_EXECUTE
)
:LABEL_EXECUTE
REM SoftwareDistributionフォルダのリネーム("SoftwareDistribution"⇒"SoftwareDistribution.old")
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
REM BITSのジョブを削除
del /q %ALLUSERSPROFILE%\Microsoft\Network\Downloader\*
REM 自動更新サービスとBITSサービスの開始
net start bits
net start wuauserv
REM 更新プログラムの確認
usoclient startscan
Windows Server 2016用
echo off
REM Windows Server 2016でWindows Updateの状態をクリアにするコマンド
REM 自動更新サービスとBITSサービスの停止
net stop usosvc
net stop dosvc
net stop wuauserv
net stop bits
REM "SoftwareDistribution.old"フォルダ存在チェック
if exist "%systemroot%\SoftwareDistribution.old\" (
echo Distributionフォルダをを削除します。
rd /s /q "%systemroot%\SoftwareDistribution.old\"
goto LABEL_EXECUTE
) else (
goto LABEL_EXECUTE
)
:LABEL_EXECUTE
REM SoftwareDistributionフォルダのリネーム("SoftwareDistribution"⇒"SoftwareDistribution.old")
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
REM BITSのジョブを削除
del /q %ALLUSERSPROFILE%\Microsoft\Network\Downloader\*
REM 自動更新サービスとBITSサービスの開始
net start bits
net start wuauserv
net start dosvc
net start usosvc
REM 更新プログラム確認
usoclient startscan
コメント