セーフモードでもWindows Updateしたい──Windows 10の場合山市良のうぃんどうず日記(135)

アプリケーションや更新プログラムのインストール後、PCが正常に起動しなくなったとしても、「セーフモード」なら起動できる場合があります。しかし、原因を取り除くためにアプリケーションをアンインストールしたり、別の更新プログラムをインストールしたりしようとしても、セーフモードではそう簡単にはいきません。

» 2018年09月04日 05時00分 公開
[山市良テクニカルライター]
「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

セーフモードでインストール/アンインストールの関連サービスを許可する

 本連載を開始したころ(2014年6月)に、次のような記事を書きました。「セーフモード(Safe Mode)」で起動したWindows XPやWindows 7、Windows 8.1で、更新プログラムのインストールやアンインストールを可能にする方法を説明したものです。

 現在は、Windows 10が主流ですので、今回はWindows 10向けに内容をアップデートしてお届けします(画面1)。

画面1 画面1 今回はWindows 10の「セーフモード」で、更新プログラムのインストールやアンインストールを可能にする方法を解説

 セーフモードでも、コントロールパネルの「インストールされた更新プログラム」(更新プログラムのアンインストール)の一覧から、特定の更新プログラムをアンインストールすることや、「WUSA」コマンドで更新プログラムをアンインストール(wusa /uninstall /kb:)することはできます。上記の記事では、その点を見逃していました。Windows 10だけでなく、Windows 7やWindows 8.1でも「インストールされた更新プログラム」からのアンインストールは可能です。

 しかし、コントロールパネルの「プログラムと機能」(プログラムのアンインストールまたは変更)からの更新プログラムやアプリケーションのアンインストールは、セーフモードでは実行できません。「Windowsインストーラー」(.msi)や「Windows Updateスタンドアロンインストーラー」(.msu)のインストール、WUSAコマンドによる更新プログラムのアンインストールも制限されます(画面2)。Windows Updateも実行できません。上記の記事で書いたように、インストールやアンインストールの前提となるサービスが、セーフモードの既定では許可されていないからです。

画面2 画面2 セーフモードでは前提となるサービスが既定で許可されていないため、MSIファイルやMSUファイルのインストールやアンインストールが実行できない

 セーフモードで許可されていないサービスは、以下のレジストリキーの下に許可したいサービス名のキーを作成し、既定の値エントリのデータに「Service」と設定することで許可することができます。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network

 「セーフモード」と「セーフモードとコマンドプロンプト」は「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)のインストール/アンインストール

 セーフモードでWindowsインストーラー(.msi)形式の更新プログラムやアプリケーションのインストールと、コントロールパネル「プログラムと機能」(プログラムのアンインストールまたは変更)からのアンインストールを可能にするには、以下のサービスを許可します(画面3)。

  • Windows Installer(サービス名:MSIServer)

画面3 画面3 セーフモードでWindowsインストーラー(.msi)のインストールとアンインストールを実行するには、「Windows Installer(サービス名:MSIServer)」サービスを許可すればよい

Windows Updateスタンドアロンインストーラー(.msu)のインストール

 セーフモードでMicrosoft Updateカタログサイトなどからダウンロードした「Windows Updateスタンドアロンインストーラー」(.msu)形式の更新プログラムのインストールを可能にするには、以下のサービスを許可します(画面4)。

  • Windows Update(サービス名:wuauserv)

画面4 画面4 Windows Updateスタンドアロンインストーラー(.msu)のインストールとアンインストールを実行するには、「Windows Update(サービス名:wuauserv)」サービスを許可すればよい

Windows Updateの実行

 Windows 10の「設定」アプリの「Windows Update」を利用可能にするには、「セーフモードとネットワーク」で以下の6つのサービスを許可します(1つ目のサービスは.msi形式の更新プログラムが検出されたときのため)。最後の2つのサービスは、Windows 10で追加された新しい関連サービスです(画面5)。

  • Windows Installer(サービス名:MSIServer)
  • Windows Update(サービス名:wuauserv)
  • Background Intelligent Transfer Service(サービス名:BITS)
  • COM+ Event System(サービス名:EventSystem)
  • Update Orchestrator Service(サービス名:UsoSvc)
  • Delivery Optimization(サービス名:DoSvc)

画面5 画面5 「セーフモードとネットワーク」でWindows Update関連のサービスを許可することで、「設定」アプリの「Windows Update」の実行も可能になる

玄人向けにはDISMコマンド

 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)。

画面6 画面6 DISMコマンドによる更新プログラムのアンインストール(セーフモードから)

 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:以外のパス)>

画面7 画面7 DISMコマンドによる更新プログラムのアンインストール(WinREのコマンドプロンプトから)

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。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.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。