WindowsUpdateでSP3をインストールしたところ、我が家にある3台のWindowsPCの内、自作の1台がインストールに苦労しました。
この自作PCのWindowsは、Windows2000からのアップグレードでXPにしたり、HDDの引越しをAntidoteというソフトを使って再インストールなしでOSを使い続けていたりと、我が家のフラッグシップでありながら元々普通の状態ではありません。
今回のアップデート(KB936929)では、「アクセス許可がありません」というエラーでした。
インストールを途中まで進めた上でエラーが出て、アンインストールが自動的に始まるので、とにかく時間がかかって厄介なトラブルでした。
解決方法は、いかの該当箇所にありました。
http://support.microsoft.com/kb/950717
ここの949377というサポート技術情報をクリックすると、いきなり英語のページへ飛ばされました。
飛び先では3段階で試せ的なことが書かれており、結局ウチのPCは最後のMethod 3が解決作でした。
タイトルからしてReset the registryと何やら危険なニオイがしたので、慎重に言われたとおりの作業を行いました。
大まかには、
1.先ずは失敗しても元の状態へ戻せるよう、システムの復元です。(サポート技術情報322756)
http://support.microsoft.com/kb/322756/
2.次にSubinacl.exe(プログラム)のインストール。
3.そしてノートパッドに以下をコピペしてReset.cmdとして保存し、それをダブルクリックで実行します。
cd /d "%ProgramFiles%\Windows Resource Kits\Tools"
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f
secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose
注意書きにあるとおり、このReset.cmdの実行には、結構な時間がかかります。
これが終わったあと、WindowsUpdateからXP3をインストールしたら、今度は上手くアップデート完了できました。
※作業を行うには自己責任で!原文をしっかり読んでください。