Microsoft Update で Windows XP のセキュリティパッチ KB2686509 適用に失敗してしまう。
x インストールに失敗しました
エラー コード: 0x8007F0F4
更新プログラムをインストールし直すか、次のいずれかのリソースからサポートを利用してください
Microsoft サポートを検索してみた。
[MS12-034] Windows XP および Windows Server 2003 の CVE-2012-0181 のセキュリティ更新プログラム (2012 年 5 月 8 日) について
パッチ適用実行時にキーボードレイアウトについてレジストリと dll ファイルの突き合わせを行い、
キーボードレイアウト情報との間に矛盾があると、パッチ適用処理を中止してしまうようだ。
早速紹介されている回避手順を試してみたが、当方のキーボードは ASCII(HHKB)環境のためか、
解決するには至らなかった。
そこで以下手順でワークアラウンドした(作業メモ)。
−−−−−−−−−−−−−−−−−−−−−−−−−
★★★ ここからは自己責任でお願いします ★★★
−−−−−−−−−−−−−−−−−−−−−−−−−
あらかじめシステム登録されているキーボード情報を確認。
C:\>dir /w %Windir%\System32 | find "101"
kbd101.dll
kbd101a.dll
kbd101b.dll
kbd101c.dll
続いてパッチ適用時に参照しているキーボードエラー情報を特定し、
C:\>type %windir%\Faultykeyboard.log
kbd101n.dll
矛盾があることが分かった。
正:kbd101.dll
誤:kbd101n.dll
キーボードエラーログも強引に修正しておくw(念のため)。
C:\>echo kbd101.dll > %windir%\Faultykeyboard.log
C:\>type %windir%\Faultykeyboard.log
kbd101.dll
キーボード情報の対象レジストリをファイル「kbparm.reg」にバックアップし、
C:\>reg export HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters kbparm.reg
それを元に新たにキーボード情報のレジストリファイル「kblayout.reg」作成し、内容を確認。
C:\>type kblayout.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"LayerDriver JPN"="kbd101.dll"
"OverrideKeyboardSubtype"=dword:00000000
"OverrideKeyboardIdentifier"="PCAT_101KEY"
最後に修正レジストリをインポートして、
C:\> reg import HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters kblayout.reg
再起動。
その後 Microsoft Update 実施して、無事セキュリティパッチ KB2686509 適用完了した。
−−−−−−−−−−−−−−−−−−−−−−−−−
<参考>
同様のトラブルに見舞われ、ハマっている人は結構いる様子。
いずれもキーボードレイアウト(レジストリ)修正で切り抜けている。
KB2686509 の適用失敗についてのメモ。多分罠は2つ
KB2686509 がインストールできない!失敗する!
KB2686509 - Failure - due to remapping of a key
KB2686509 - Failure due to missing DLL files
ドイツの Christian さん作成した VB スクリプトで一発解決?
ダウンロードした zip を解き、コマンドラインから vbs スクリプト実行
C:\>cscript HotFix4KB2686509.vbs