今週頭くらいからWindows XP SP3上で自動更新機能からMicrosoft SQL Server 2005 Express Edition SP3 (KB955706)のインストールを促されるのですが、いざやると毎回失敗していました。それだけならいいのですが、シャットダウンのときに毎回その更新をやろうとするため、時間がかかってしょうがない。
検索すると同じ症状になって質問している人がちらほらいるのですが、「SQL Serverなんて使ってるの?」→「要るかどうか分からないんです」→「普通使わないよ、消しちゃえ」→「使わないみたいですね、アンインストールします」てな流れ。
私使ってるから (T_T)
まずはWindows Updateに接続して、左側にある更新履歴を確認。あぁ、やっぱり何度も失敗している。エラーコードを見ると、0x2B2F。ところがこれでMicrosoftのページを検索しても何も出てこない。16進数は10進数に直して検索する なんてしらね~よ(つдT) 0x2B2F=11055。このエラーコードの意味は"Unable to install Windows Installer MSI file"、非常につかみどころが無い・・・
結局半日かけて解決した方法は以下の通り(基本的に管理者権限必要)- 念のため、SQL Server関連はコントロールパネルのサービスから停止しておく。
- 更新はWindows Updateではなく、下記のフルインストールパッケージを使う。インストールパッケージだが、アップデートにも対応してくれる。
- Microsoft SQL Server 2005 Express Edition Service Pack 3 (基本版。サイズが小さい)
- Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 3 (Management Studio Expressなど追加コンポーネントも更新する場合)
- インストール時にいろいろ聞かれるので、適当に答えるw
- IISがインストールされていないという警告が出ますが、実際入れていないなら無視。
- Management Studio Expressをインストールしているなら、更新対象に加える。
- 画像のように(これは英語版ですが)、インスタンスの名前には既定のインスタンスを指定する。
- 上の更新でMSXML6の更新に失敗して後が全部失敗する場合、以下のようにする(XP SP3を入れるとMSXML6 SP2が入るのが原因らしい)。
- このページ にある、Windows Installer Clean Up をダウンロード [2010/10/8 ダウンロードできなくなりました。追記参照してください]。インストールするとスタートメニューのプログラムに追加されるので実行。MSXML6を削除する。
- Microsoft Core XML Services (MSXML) 6.0 をダウンロード、インストール。これでMSXML6が初期バージョンに戻る。
- 再度SQL Server 2005 Express SP3フルインストールを実行。これでうまくいかない場合は、他を当たってください orz
[2010/1/15 追記] SQL Server Express関連もこのツールで削除するとうまく行ったという報告があります。Toriさんのコメントを読んでください
- 自動更新を考え直させるためWindows再起動、もしくはコントロールパネル-管理ツール-サービスからAutomatic Updateをいったん停止・再起動。
- それでも自動更新が騒ぐ場合は、Windows Updateの更新履歴を削除。
- コントロールパネル-管理ツール-サービスからAutomatic Updateサービスを停止。
- %WINDIR%¥SoftwareDistributionディレクトリを名前変更するか削除。
- Automatic Updateサービスを開始。
- Windows再起動(シャットダウン時の更新が相変わらずセットされている場合)。
[参考]
- Microsoft SQLServer2005のアップデートについて (答えてねっと)
- Unable to install SQL Server 2005 SP2 - Unable to install Windows Installer MSI File (MSDN Forums)
- Windows:WindowsUpdateできません (Flying TULIP side-Blog - 2008/2/26)
[2009/2/27 追記] 今読み返すと、MSXML6をアンインストールする(もしくは初期版に戻す)だけで良いんじゃないかと思えてきた。誰か気が向いたらお試しを。
[2009/3/19 追記] MSXML6アンインストール→Windows updateでうまく行ったという報告が来てます。コメント参照。
[2010/10/8 追記] Windows Installer CleanUpがダウンロード不可能になっているようです。この件の解決は2010/10/8の時点で文書番号: 968749 にて、マイクロソフトに連絡を取るようにとなってます。契約を結ぶ必要があるなど面倒そうですが、費用はかからないとのことです。
[2010/10/8 追記] 検索 したところ、以下のところからWindows Installer CleanUpがダウンロードできます。公式HPから取り下げられている以上これらは非正規と思われますので、自己責任でご使用ください。
1. 同じ症状でした — 2009/03/18@09:56:19
microsoft のサポートセンターにメールして対処方法もきいたのですが
上記の1~3の内容のみで、「それでだめだったらあきらめて」
みたいな内容でした。
で、4で書かれていた、Windos Installer CleanUp により
MSXML6 SP2 を削除した後
MicroSoft Update をしたら SP3へアップデート成功しました。
MSXML6 SP2 が原因みたいです。
参考になりました。