アプリケーションや更新プログラムのインストール後、PCが正常に起動しなくなったとしても、「セーフモード」なら起動できる場合があります。しかし、原因を取り除くためにアプリケーションをアンインストールしたり、別の更新プログラムをインストールしたりしようとしても、セーフモードではそう簡単にはいきません。
本連載を開始したころ(2014年6月)に、次のような記事を書きました。「セーフモード(Safe Mode)」で起動したWindows XPやWindows 7、Windows 8.1で、更新プログラムのインストールやアンインストールを可能にする方法を説明したものです。
現在は、Windows 10が主流ですので、今回はWindows 10向けに内容をアップデートしてお届けします(画面1)。
セーフモードでも、コントロールパネルの「インストールされた更新プログラム」(更新プログラムのアンインストール)の一覧から、特定の更新プログラムをアンインストールすることや、「WUSA」コマンドで更新プログラムをアンインストール(wusa /uninstall /kb:
しかし、コントロールパネルの「プログラムと機能」(プログラムのアンインストールまたは変更)からの更新プログラムやアプリケーションのアンインストールは、セーフモードでは実行できません。「Windowsインストーラー」(.msi)や「Windows Updateスタンドアロンインストーラー」(.msu)のインストール、WUSAコマンドによる更新プログラムのアンインストールも制限されます(画面2)。Windows Updateも実行できません。上記の記事で書いたように、インストールやアンインストールの前提となるサービスが、セーフモードの既定では許可されていないからです。
セーフモードで許可されていないサービスは、以下のレジストリキーの下に許可したいサービス名のキーを作成し、既定の値エントリのデータに「Service」と設定することで許可することができます。
「セーフモード」と「セーフモードとコマンドプロンプト」は「Minimal」キー、「セーフモードとネットワーク」は「Network」キーを編集します。
レジストリは「レジストリエディター(Regedit.exe)」で作成できますが、コマンドプロンプト(管理者として実行)で「REG」コマンドを実行することで、簡単に作成/削除することもできます。レジストリキーと値を作成するには以下の1つ目のコマンドラインを、レジストリキーを削除して元の状態に戻すには2つ目のコマンドラインを実行します。
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\<サービス名> /ve /d Service
REG DELETE HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\<サービス名> /f≫
セーフモードでWindowsインストーラー(.msi)形式の更新プログラムやアプリケーションのインストールと、コントロールパネル「プログラムと機能」(プログラムのアンインストールまたは変更)からのアンインストールを可能にするには、以下のサービスを許可します(画面3)。
セーフモードでMicrosoft Updateカタログサイトなどからダウンロードした「Windows Updateスタンドアロンインストーラー」(.msu)形式の更新プログラムのインストールを可能にするには、以下のサービスを許可します(画面4)。
Windows 10の「設定」アプリの「Windows Update」を利用可能にするには、「セーフモードとネットワーク」で以下の6つのサービスを許可します(1つ目のサービスは.msi形式の更新プログラムが検出されたときのため)。最後の2つのサービスは、Windows 10で追加された新しい関連サービスです(画面5)。
Windows 10の「品質更新プログラム」は、「DISM」コマンドでアンインストールすることもできます。DISMコマンドを使用した方法は、セーフモードの既定の状態でも利用できますし、Windows回復環境(WinRE)の「コマンドプロンプト」で起動した環境から、オフラインのWindowsイメージに対して実行することも可能です。
WinREからも利用できるため、正常に起動できなくなったPCから更新プログラムをアンインストールすることもできます。コントロールパネルやWindows Updateの標準のUI(ユーザーインタフェース)を使った方法に対して、こちらは玄人向けの方法といえるでしょう。
DISMコマンドは、セーフモードと通常起動に関係なく、次のコマンドラインで実行します。
DISM /Online /Get-Package
DISM /Online /Remove-Package /PackageName:<パッケージID>
DISM /Online /Add-Package /PackagePath:<Windows Updateスタンドアロンインストーラー(.msu)のパス>
1つ目のコマンドラインは、インストール済み更新プログラムのパッケージIDの確認。2つ目のコマンドラインは、パッケージIDの指定による更新プログラムのアンインストール。3つ目のコマンドラインは、Windows Updateスタンドアロンインストーラー(.msu)のインストールです(画面6)。
WinREの「コマンドプロンプト」の場合は、上記のコマンドラインの「/Online」を「/Image」オプションに変更して実行します。また、作業ディレクトリとして「/ScratchDirにX:」ドライブ(WinREのイメージが読み込まれるRAMディスク)以外のパスを指定します(画面7)。
DISM /Image:<オフラインのWindowsのルート:\> /Get-Package
DISM /Image:<オフラインのWindowsのルート:\> /Remove-Package /PackageName:<パッケージID> /ScratchDir:<作業ディレクトリ(X:以外のパス)>
DISM /Image:<オフラインのWindowsのルート:\> /Add-Package /PackagePath:<Windows Updateスタンドアロンインストーラー(.msu)のパス> /ScratchDir:<作業ディレクトリ(X:以外のパス)>
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.