連日のように「WindowsUpdateが出来ない」「0x8XXXXXXXエラー」
「一日待っても終わらない」「xx%から進みません」
のような悲鳴がネット上から沢山聞こえてきます。
失敗を繰り返し、空き容量が足りないとか悪化させる場合もあります。
対応策の中に、KBxxxxxxx.msu をアップデートカタログからダウンロードして
ローカルでアップデートをする方法があります。
この方法でも、ウィルス対策ソフトが邪魔をしたりする事があるので
クリーンブートしてから行ってくださいとか手順が面倒です。
そこで、インストールメディアでアンインストールが出来るなら
アップデート(インストール)も出来るのでは?と試したら出来ました。
緊急手段?として使えるかも知れません。
やり方は
① インストールメディアをUSBメモリで作成。
※ 8GBでOK。
※ インストール先と同じOSで同じビット数で作成。
② 「X.cmd」と「C:\Windows\system32\CHOICE.exe」をUSBメモリのルートにコピー。
※ コピー先は、Setup.exe のある所です。
③ ダウンロードした「KBxxxxxxx.msu」をUSBメモリのルートにコピー。
④ USBメモリで起動して、言語選択画面で Shift + F10 を押します。
⑤ コマンドプロンプトが表示されたら「D:¥x」(半角)と入力後、Enter。
バッチが起動しなかったら「E:¥x」、「F:¥x」、「G:¥x」のように
ドライブレターを変更して実行して下さい。
⑥ バッチが起動したら、OSのドライブを聞かれるので「C」等を入力。
アップデートのインストールが行われます。
⑦ インストールが終わると、シャットダウン等を聞かれるので「S」を押す。
@echo off
SetLocal EnableDelayedExpansion
powercfg /? >nul 2> nul && call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
CLS
echo;★ ★ ★ KBxxxxxxx アップデートをインストールする (要:CHOICE.exe) ★ ★ ★
echo;
echo; Windows のあるドライブを探しています・・・
echo;
Set "Select_Drive= "
for %%D in ( C D E F G H I J K L M N O P Q Q S T U V W Y Z ) do (
if exist %%D:\ (
if exist "%%D:\Windows\system32\cmd.exe" (
echo;【 %%D 】ドライブに cmd.exe が在ります。多分、これが OS の ドライブかも。
)
Call Set Select_Drive=%%Select_Drive%%%%%%D
)
)
echo;
echo; [C,D,E]? のような選択肢が表示されたら
echo;
echo; C を選択する場合、「 C 」キーだけ押して下さい。
echo;
"%~dp0choice" /c %Select_Drive% /m " OS のドライブを指定して下さい "
Call Set OSのドライブ=%%Select_Drive:~!errorlevel!,1%%
echo;
echo; USBメモリにあるアップデートをインストールします。
Dism /Image:%OSのドライブ%:\ /ScratchDir:%OSのドライブ%:\ /Add-Package /PackagePath:"%~d0:"
echo;
"%~dp0choice" /c SRT /m "更新終了。この後どうする? シャットダウン:S、再起動:R、取り合えずこの処理を終わる:T "
if !ERRORLEVEL! EQU 1 Wpeutil Shutdown
if !ERRORLEVEL! EQU 2 Wpeutil Reboot