LoginSignup
0
0

More than 5 years have passed since last update.

この不親切な手順に救援を 其の2

Last updated at Posted at 2018-03-09

KB4074588 の被害に遭われた方が多いと思います。
Ask CORE のブログで対処方法が出ていましたが
オフラインでの対応手順をバッチ化してみました。

やり方は
① インストールメディアをUSBメモリで作成。
  ※ 8GBでOK。
  ※ インストール先と同じOSで同じビット数で作成。
② 「Z.cmd」と「C:\Windows\system32\CHOICE.exe」をUSBメモリのルートにコピー。
  ※ コピー先は、Setup.exe のある所です。
③ USBメモリで起動して、言語選択画面で Shift + F10 を押します。
④ コマンドプロンプトが表示されたら「D:¥z」(半角)と入力後、Enter。
  バッチが起動しなかったら「E:¥z」、「F:¥z」、「G:¥z」のように
  ドライブレターを変更して実行して下さい。
⑤ バッチが起動したら、OSのドライブを聞かれるので「C」等を入力。
⑥ パッケージが表示され、アンインストールを聞かれるので
  目的のパッケージが表示されるまで毎回「N」を押し、最後に「Y」を押す。
⑦ 全パッケージの表示が終わると、シャットダウン等を聞かれるので「S」を押す。

更新プログラム適用後、USB デバイス(キーボード及びマウス)が使用できなくなる事象について
https://blogs.technet.microsoft.com/askcorejp/2018/02/23/usb_device_problem_after_update/

z.cmd
@echo off
SetLocal EnableDelayedExpansion

powercfg /? > nul 2> nul && call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

CLS
echo;★ ★ ★ 適用されたアップデートをアンインストールする (要: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;適用されたアップデートを探索しながら選択してアンインストールします。
echo;
echo;  パッケージが表示されたら
echo;
echo;  アンインストール しない 場合、[ N ] キーだけ押す。もしくは60秒待つ。
echo;
echo;  アンインストール  する  場合、[ Y ] キーだけ押す。
echo;

                                    Set Image-and-Scratch=/Image:%OSのドライブ%:\ /ScratchDir:%OSのドライブ%:\
for /f "delims=" %%0 in         ('Dism %Image-and-Scratch% /Get-Packages') do (
        set  Msg=%%0
   if      "!Msg:~0,11!"=="パッケージ ID : "                                         set "PackageID=!Msg:パッケージ ID : =!"
   if      "!Msg:~0,16!"=="リリースの種類 : Update" (
       "%~dp0choice" /c YN /t 60 /d N                                              /m " !PackageID!  を アンインストールしますか "
       echo;
       if      !ERRORLEVEL! EQU 1 Dism %Image-and-Scratch% /Remove-Package /PackageName:"!PackageID!" & echo;
   )
)

"%~dp0choice" /c SRT /m "探索終了。この後どうする? シャットダウン:S、再起動:R、取り合えずこの処理を終わる:T "

if      !ERRORLEVEL! EQU 1                          Wpeutil         Shutdown
if      !ERRORLEVEL! EQU 2                          Wpeutil                    Reboot

z.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0