WindowsXP SP3

 WindowsXPのService Pack3リリースから1週間ほどが経ったので導入することに。
 エラー出まくりでインストール失敗しまくり! 面倒くさい!! 馬鹿らしくなって何度も諦めかけました。
 インストール前にバックアップを作る→SP3のインストール開始→20分ほど経ったあたりで「アクセスが拒否されました」のエラー→バックアップしていたデータに差し戻し作業→また20分待つ→SP2に逆戻り→自動的に再起動→再びインストール
 という、苦痛のループ。解決策を簡単にまとめれば

  • インストール中、どのファイルをイジる際にアクセス拒否されたのかを把握。SP3導入時のエラーログは updspapi.log にまとめられる。 setupapi.log ではありません
  • regedit でレジストリを書き換え。 updspapi.log で問題を確認したファイルに関するアクセス権限を許可する。
  • レジストリを書き換えてアクセスを許可したつもりでも、SP3のインストールに失敗した後の「差し戻し作業」を終えるとレジストリのアクセスが不許可に戻っているので(ここが面倒くささの元凶)、PC再起動直後にレジストリを(何箇所か)書き換えてからインストールを始める。

 ざっくりした書き方だと余計に分かりづらいだろうと思うので以下に順を追って書きます。

  • 1:WindowsXP ServicePack3をダウンロード。

インストールを失敗するたびにWindowsUpdate経由で通信するのは面倒なので、SP3のフルパッケージともいうべきファイルをダウンロードします。SP2があらかじめインストールされている必要があります。ここから日本語版を落とせます

  • 2:とりあえずはインストールしてみる。1でDLしたファイルをダブルクリック。

 インストールが開始されます。しばらく待った後でSP2のバックアップファイルの保存先を指定しろと指示されます。容量の多いHDDを選択してください。
 バックアップの保存に必要な空き容量は何GBですという表記があると分かりやすいのですが、そのようなアドバイスはありません。とにかく余裕のあるHDDに適当なフォルダを作って、そこをバックアップ先として選択しましょう。

  • 3:アクセスが拒否されました というエラーメッセージが出るのを待つ。

 失敗することを分かっていてインストールするのは馬鹿らしいですが、我慢。アクセス拒否によるエラーメッセージをあえて発生させ、どのレジストリをイジるべきかのログを保存させる必要があります。

  • 4:エラーメッセージが出たら素直に[OK]をクリックし、SP2への差し戻し作業を見守る。

 20〜30分ほど続けられた作業が無駄になっていく様を見届けます。保存していたバックアップファイルにもう一度書き直す作業です。
 この作業が終わるとおそらくPCが自動的に再起動します。その時に開いていたアプリなどは強制終了されてしまうので、この作業をする時はアプリを閉じておきましょう。
 自動的に再起動されない場合は、SP2への差し戻しが終了次第、手動で再起動しておくのが無難です。

  • 5:エラーの原因となっているレジストリキーを特定する。

レジストリキーって何? という疑問は横に置いておきましょう。チルさんもよく分かりません。

  • 5-1:スタートメニューから[ファイル名を指定して実行]を選択し、%windir%\updspapi.log と入力してください。コピペで可。.logの後のスペースは不要。
  • 5-2:開いたテキストファイルの中から「エラー 5: アクセスが拒否されました。」の一文を探す。ファイルメニューから[検索]を選んで左の文をコピペして[次を検索]。

 たとえばこんな文章が検索できると思います。
#E008 レジストリ値 HKCR\HNetCfg.FwMgr を設定しています
#E033 エラー 5: アクセスが拒否されました。
#E064 〜〜〜〜〜〜 エラー 5: アクセスが拒否されました。
#E065 〜〜〜〜〜〜 エラー 5: アクセスが拒否されました。

 問題は「拒否されました」の上の行です。どのレジストリ値を設定している際にアクセスが拒否されたのかが記録されています。
 検索したファイルはとりあえずそのまま開いておきます。

  • 6:レジストリのアクセス許可を変更する
  • 6-1:スタートメニューから[ファイル名を指定して実行]を選択し、regedit と入力。レジストリエディタなるものが起動します。
  • 6-2:5-2で検索したレジストリを探す。

 上記で例として挙げたHKCR〜というのはHKEY_CLASSES_ROOTの略称です。ツリーからHKEY_CLASSES_ROOTを選んで展開し、次にHNetCfg.FwMgrを探します。
 文字列を見つけたらカーソルを合わせて右クリックし、アクセス許可を選びます。

  • 6-3:Administrators と SYSTEM にフルコントロールのアクセス許可を与える。

 ユーザー名の中からAdministratorsをクリックし、下覧のフルコントロール:許可のボックスをクリックしてチェックを入れます。SYSTEMにも同じようにフルコントロールを許可します。許可するのはAdministratorsだけで良いかもしれませんが、念のため…
 どのレジストリをイジるのかは個人によってまちまちかもしれませんが、チルさんの場合は
HKCR\HNetCfg.FwMgr
HKCR\.xbm\PersistentHandler
HKCR\HNetCfg.FwOpenPort
 の三箇所でした。上記作業の2,3,4,5が明らかに面倒だと思う方は、チルさんがイジったレジストリ3点にアクセス許可を与えてからインストールしてみると良いかもしれません。
 アクセス拒否のエラーが出たら、PC再起動後に作業5と6を行い、対処してください。

 保存しておいたXP SP3のインストールパックを起動して再びインストール作業へ。バックアップ保存先の指定もおろそかにしないでください。
 レジストリをイジった後でまた「アクセスが拒否されました」のエラーが出た場合は、再起動の後に作業5,6を行ってください。