Update」からアップデートを実行します。UpdateのUI、「セーフモード」でPCを起動すると消えてしまうんです。XPを例に説明しました。8.1でも使えるものです。Serverでも使えます。Agent(WUA)API」を使用して更新プログラムをインストールします。Updateに関連するいくつかのサービスを許可すれば、「セーフモードとネットワーク」で起動したPCでもインストールできるようになります(画面1、画面2)。Updateも実行できるようになるはずです。Vista以降のPCを「セーフモードとネットワーク」で起動して「コントロールパネル」を開くと、通常起動時よりも表示される項目が少ないことに気が付くでしょう。Updateは見当たりません。これは「セーフモード」の場合も同様です。Updateのユーザーインターフェイス(UI)は、次のいずれかのコマンドラインを実行して開くことができます。「セーフモードとネットワーク」でこれらのコマンドを実行しても、何も起きません(画面3)。UpdateのUIは無効になるようです。Updateの機能そのものが無効になっているわけではありません。Updateによる更新のチェックとインストールが可能だからです(画面4)。Updateを実行することができます。以下のサイトには、さまざまなサンプルスクリプトが掲載されています。PowerShellスクリプト(WindowsUpdate.ps1)を書いたことがあります(画面5)。Updateで自動選択される推奨の更新プログラムを全てインストールしようとします。8.1環境でも動作します。Updateを実行できます。タスクスケジューラーから自動実行するなど、これらのスクリプトを普段使いで活用することもできます。自由にコピペ、改造してお使いください。2012以降にある「sconfig」ユーティリティの「更新プログラムのダウンロードとインストール」メニューは、同じサンプルスクリプトをベースにした「%Windir%\System32\ja-jp\WUA_SearchDownloadInstall.vbs」を実行するようになっています。Updateを含む一部のコントロールパネル項目が利用できなくなるという状況についても解明しました。Vista以降の仕様”ということになります。既定の仕様をカスタマイズすることは可能です。そのヒントをWindowsの開発者向けドキュメントの中に見つけました。Vista以降では、レジストリに登録されているコントロールパネルの各項目(.cplや.dllなど)に対応した「System.ControlPanel.EnableInSafeMode」という名前のキーまたは値に、「1(セーフモードで項目を表示)」「2(セーフモードとネットワークで項目を表示)」「3(両方で項目を表示)」の値を設定することで、既定で非表示になっているコントロールパネルを表示するようにカスタマイズできるようです。Update」という文字列で検索したところ、以下の場所にそれらしきキーを見つけました。このキーの中に「System.ControlPanel.EnableInSafeMode」というREG_DWORD値を作成し、値に「2」または「3」を設定すれば目的を達成できそうです。HKEY_CLASSES_ROOT\CLSID\{36eef7db-88ad-4e81-ad49-0e313f0c35f8}しかし、キーの中に値を作成しようとすると、「値を作成できません。レジストリへの書き込み中にエラーが発生しました。そこで、このキーの所有者を既定の「TrustedInstaller」からローカルの「Administrators」に変更し、「Administrators」にフルコントロールのアクセス許可を与えた上でキーを作成しました(画面6)。Updateの項目が表示されました。Updateを実行することもできました(画面7、画面8)。Updateによる更新に成功!なお、この方法はレジストリキーの所有者やアクセス許可の変更が必要なので、決してお勧めはしません。この方法を行う方は、自己責任でお願いします。Updateする”ということに固執してしまいましたが、緊急のトラブルを解決するためにここまでする必要はないでしょう。次回は、「セーフモード」でも起動できなくなったPCに更新プログラムをインストールしたり、アンインストールしたりするテクニックを紹介します。知っているとちょっとしたヒーローになれるかもしれませんよ。それともオタクっぽいと思われたりして......。