HDD交換に伴ってWindowsUpdateが実行できない。

本日は月例WindowsUpdateの日なので、Windows7(x64)PCのWindowsUpdateを実行しようと思ったが、以下のようなメッセージによって実行ができなかった。
「現在サービスが実行されていないため、Windows Update で更新プログラムを確認できません。このコンピューターの再起動が必要な可能性があります。」
メッセージに従って、WindowsUpdateサービスを確認したが、該当のサービス(wuauserv)は正しく起動している。
こんな時はイベントログだ。イベントログ(アプリ)を確認すると、WindowsUpdateは0xc8000247で失敗。その原因はCAPI2というソースで以下のようなエラーが大量に発生しているからだと推測された。
「暗号化サービスで、カタログ データベースを初期化できませんでした。ESENT エラー: -583。」
このエラーを検索すると、このサイトが引っかかり、さらにそこから「technet」にたどりついた。
修復手順は以下の通り。

Repair the catalog database by using Esentutl

To repair the catalog database by using Esentutl:
1.Click Start, point to All Programs, and then click Accessories.
2.Right-click Command Prompt, and then click Run as administrator.
3.If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
4.In the command prompt window, type net stop cryptsvc to stop Cryptographic Services, and then press ENTER.
5.Type esentutl /p <%systemroot%>\System32\catroot2\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\catdb, and then press ENTER.
By default, %systemroot% is located at C:\Windows.

6.Click OK to confirm that you should run this tool only on databases that are corrupt.
7.If Esentutl reports that the catalog database is still corrupt, you should use one of the following procedures to create a new catroot2 folder.
8.Type net start cryptsvc to start Cryptographic Services, and then press ENTER.

意訳すると

1.スタートボタンから「すべてのプログラム」−「アクセサリ」をせんたくして「コマンドプロンプト」を右クリックから「管理者として実行」する。
このときにユーザーアカウント制御(UAC)のメッセージボックスが出力されるかもしれないけど気にせずに「実行」を押す。
2.net stop cryptsvc
と入力して「Cryptographic Services」というサービスを停止します。
3.esentutl /p %systemroot%\System32\catroot2\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\catdb
と入力してENTERキーを押します。
4.confirmが出るのでOKを押下します。
5.Esentutlが「catalog database is still corrupt」と応答してきたら、次項の「create a new catroot2 folder」をためしてください。
6.net start cryptsvc
と入力して「Cryptographic Services」というサービスを開始します。

試してみたところ、上記3のesentutlで失敗する。
catroot2というディレクトリの問題であると推測し、検索するとこんなページが見つかったので、実行してみたが、問題は解決しない。そしてcatroot2ディレクトリにはdberr.txtというファイルが作成されていて以下のような記述があった。

CatalogDB: 1:02:55 2011/11/10: JetInit Corruption
CatalogDB: 1:02:55 2011/11/10: catdbsvc.cpp at line #755 encountered JET error -583
CatalogDB: 1:02:55 2011/11/10: catdbsvc.cpp at line #969 encountered JET error -583
CatalogDB: 1:02:55 2011/11/10: catdbsvc.cpp at line #7066 encountered error 0x00000000
CatalogDB: 1:02:55 2011/11/10: catdbsvc.cpp at line #3454 encountered error 0x00000000
CatalogDB: 1:02:55 2011/11/10: catdbsvc.cpp at line #2702 encountered error 0x00000000
CatalogDB: 1:02:55 2011/11/10: catdbcli.cpp at line #610 encountered error 0x8000ffff
CatalogDB: 1:02:56 2011/11/10: catadnew.cpp at line #1915 encountered error 0x8000ffff
CatalogDB: 1:02:56 2011/11/10: catadnew.cpp at line #907 encountered error 0x8000ffff

JetInit Corruptionが非常に怪しいが、検索しても引っかからない。さっぱりわからん。
いいや、システムの復元で復元しようと思い、復元ポイントがいつのものか確認しようとしたら、システムの保護が無効になっていた(笑)。
どうにもならないので、更に調査したところこんなページを見つけた。
確かに、「プログラムと機能」には「Intel Matrix Storage Manager」がいたので、「Intel Rapid Storage Technology」をダウンロードしインストールし、再起動したところ、正常にWindowsUpdateができるようになった。

おそらく現象のトリガはHDDを換装したことで、原因は「Intel Matrix Storage Manager」だったと思われる。多分「Intel Matrix Storage Manager」が以前のHDDの情報を持っていたのか、もしくは1TBのHDDの情報取得に対応していなかったか。Windowsは現在のHDDの情報を使うため、齟齬が発生して、こんな状態になったんだろう。いやはや、大変だった。