つい最近のWindows XP用のアップデートで、KB2686509のインストール時にエラーコード0xf0f4や0x8007F0F4にてインストールが出来ない症状が出てしまった。
マイクロソフトの英語スレッドを見ると同じような症状の人がいるみたいだ。Security Update KB2686509 will not install- error code 0xf0f4、KB2686509 repeatedly fails with Error code 0x8007F0F4
この問題は2012年5月に配布されたパッチであり、他の月例セキュリティーフィックスはインストールされるのに、このKB2686509のパッチだけが何回行なってもインストール出来ないものである。エラーコード 0x8007F0F4 の意味は、Windowsがこのセキュリティーフィックスをインストールする準備ができていないという事を示しているものである。
この問題への解決方法(当たり前ですが、全て自己責任で行なって下さい。)
- キーボードのキー配列を編集してしまっている人は、以下を参照。
- KB2686509 – Failure – due to remapping of a key(英語)
- 上記マイクロソフトへのURLは基本的にキーボードレイアウトを編集してしまっている場合、一旦そのあたいをバックアップし、削除し、KB2686509のセキュリティーフィックスをインストール、再起動、バックアップから先程のキーを復元という事をしている。
- 注意事項として、レジストリーのバックアップはSCANMAPのキーだけをバックアップすること。全体のバックアップをしてその全体バックアップを再度戻してしまうとおかしな事になる可能性があります。
- Win98/MeからXPへアップグレードしているユーザーでこの問題に直面している場合は、以下を参照。
- DLLがなくなってしまっているからインストール出来ないは、以下を参照。
- 最後にMSのスレッドでChristianというドイツ人の方が作成したVBスクリプトにて上記の問題を解決してくれるものがあります。(5月30日にスクリプト作成者がスクリプトをアップデートしましたので下記に新しい方法を載せておきます。なお、私の下記の日本語の作動スクリプトを同じ所へダウンロードし実行しても同じ結果になります。ただ日本語なだけです。)
- http://www.vivus.net/dl/を開く。
- 画面中央の”Download HotFix for KB2686509 here.“をクリックし、ZIPファイルをデスクトップ等へダウンロード。
- ダウンロードしたZIPファイルをデスクトップ等へ解凍する。
- 解凍した中に「 !START_HotFix.cmd 」というファイルがあるのでダブルクリック。
- 以前失敗した「KB2686509」を再度インストールを試みる。
- 「 rereg_HKLM_KBLayoutS.cmd 」をダブルクリックする。これで終了。
- http://www.vivus.net/dl/へ行き、” HotFix4KB2686509.zip download”という所をクリックし、ファイルの中のvbsスクリプトをコマンドラインからcscript HotFix4KB2686509.vbsと実行すれば良いだけです。実行時の画面は記事の下の方にあります。また、メモ帳等でこのファイルを開くと中に説明があります。スクリプト実行後、kb2686509のセキュリティーフィックスをインストールして下さい。
- このVBスクリプトが行なっている事は以下の2つです。
- HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode のエントリーを削除。
- HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts を現行のファイルと比較し、間違った値を削除。
- 解凍されたHotFix4KB2686509.vbsをダブルクリックしないで下さい。エラーになります。
- 「cscript HotFix4KB2686509.vbs」とコマンドプロンプトで実行して下さい。もちろん解凍したHotFix4KB2686509.vbsがあるフォルダーを参照した形で行わないとエラーになります。例:c:\に解凍した場合、「cscript c:\HotFix4KB2686509.vbs」となります。
- もしくは、これをダウンロードし、解凍したHotFix4KB2686509.vbsと同じフォルダーへ解凍し入れた後、HotFix4KB2686509.CMDを実行して下さい。もしかしたらセキュリティーソフトで止められるかもしれませんがOKと押して進んで下さい。中身は以下のようになっております。
@ECHO OFF cscript HotFix4KB2686509.vbs ECHO. ECHO 何かキーを押すとこのプロンプトを終了しますので、 ECHO KB2686509をインストールしてみて下さい。 PAUSE EXIT
内容は見ての通り、CSCRIPTを使ってVBスクリプトを実行するだけです。コマンドプロンプトへ行くのを省くためだけのファイルです。
- 彼のスクリプトも翻訳後、含めたかったのですが、許可の返事がないので。
- なお、Christianが作成したファイルへの直リンク等はしないように。
- もう一つですが、昨日KB2686509のVBフィックスを作成した彼が、DOSのバッチスクリプトを作成しました。VBスクリプトでやるかバッチスクリプトでやるかの違いですが、もしVBスクリプトでエラーが起こる人は、このバッチスクリプトで試してみるといいかもしれません。
- http://www.vivus.net/dl/を開く。
- 画面下の”バッチスクリプトの画面をクリックすると“HardcoreFixKB2686509.cmd”というバッチスクリプトがダウンロードされます。
- ダウンロードされた“HardcoreFixKB2686509.cmd”をダブルクリックし、実行する。
- 途中、以下の画面のように一回スクリプトが止まりますのでKB2686509をWindows Updateからインストールして下さい。
- KB2686509がインストールし終わったら、先程の一回止まった画面で何かキーを押して下さい。以下の画面になりますので再起動して下さい。
この問題に当たる人
- nlite等でWindows XPのOSを作成している。(キーボードのマッピングを編集しているかいないかは関係ない)
- キーボードのキーを編集(remap)している。
- Windows 98/Me等からWindows XPへアップグレードしている。
- 「faultykeyboard.log」というファイルがWindowsのフォルダーの中にない。
- 「faultykeyboard.log」があるが、その中に記されているDLLファイルがない。
- メーカーが用意したOSディスクや修復ディスクは中身が編集されてしまっている為、もしかしたらそのせいで起こっている可能性がある。
- デル製で問題が報告されている。
上記以外でも問題が起こる可能性があるが、大別すると以下が問題になる。
- スキャンコードが編集されてしまっている。
-
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout
キーボードのレイアウトキーが編集されてしまっている。
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
以下KB2686509.logのファイルの中身。
- インストールに失敗している場合、
[KB2686509.log] 1.297: ================================================================================ 1.297: 2012/05/15 12:27:14.312 (local) 1.297: C:\WINDOWS\SoftwareDistribution\Download\3438087687b5dd8accc81e44f72f02e7\update\update.exe (version 6.3.13.0) 1.390: DoInstallation: GetProcAddress(InitializeCustomizationDLL) Returned: 0x7f 1.390: Failed To Enable SE_SHUTDOWN_PRIVILEGE 1.390: Hotfix started with following command line: -q -z -er /ParentInfo:256541989586e34583f1ec784ecf6eb2 1.656: In Function GetReleaseSet, line 1240, RegQueryValueEx failed with error 0x2 1.750: Return Value From IsMachineSafe = 0 1.750: IsMachineSafe returned 441092 1.750: Fist Condition in Prereq.IsMachineSafe.Section Failed 1.750: Condition Check for Line 1 of PreRequisite returned FALSE 1.750: ReadStringFromInf: UpdSpGetLineText failed: 0xe0000102 1.750: KB2686509 Setup encountered an error: Setup cannot continue because one or more prerequisites required to install KB2686509 failed. For More details check the Log File c:\windows\KB2686509.log 1.765: ReadStringFromInf: UpdSpGetLineText failed: 0xe0000102 1.765: Setup cannot continue because one or more prerequisites required to install KB2686509 failed. For More details check the Log File c:\windows\KB2686509.log 1.765: Update.exe extended error code = 0xf0f4
- インストールに成功している場合、特になし
以下失敗時の画面(英語)
成功した時の画面はいつも通りですので省いています。
インストールに失敗する場合のファイルとかの中身。もちろんユーザーの環境によって変わってきます。
面白い事に、このファイルはユーザーによってはあったりなかったりする。また、KB2686509のインストールの失敗後に生成されたりされなかったりとする。こちらでは最初なかったが何回か失敗しているうちに生成されていた。
冒頭のドイツ人によって作成されたこの問題を一発解決するスクリプトをこちらの環境で実行した場合、以下のようになりました。
D:\cscript HotFix4KB2686509.vbs Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation. All rights reserved. =================== = Registry Backup = =================== HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout to ".\HKLM_KBLayout_20120515-170410.reg" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts to ".\HKLM_KBLayouts_20120515-170410.reg" =================== HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map not found. =================== Layout File 00000409 KBDUS.DLL File exists 00000411 KBDJPN.DLL File exists 00010409 KBDDV.DLL File not found ? Key has been deleted. 00020409 KBDUSX.DLL File exists 00030409 KBDUSL.DLL File not found ? Key has been deleted. 00040409 KBDUSR.DLL File not found ? Key has been deleted. E0010411 Kbdjpn.dll File exists E0200411 kbdjpn.dll File exists Changes have been done ? try to run KB2686509 again! D:\
「File not found – Key has been deleted.」と表示されているのは、「faultykeyboard.log」の中身と同じ内容の事を言っております。
コメント
コメント一覧 (8件)
お邪魔いたします。
流れ着きました。
•Windows 98/Me等からWindows XPへアップグレードしている。
•「faultykeyboard.log」があるが、その中に記されているDLLファイルがない。
◦デル製で問題が報告されている
これが自分のPCにあたります。
ドイツ人さんのソフトも使ってみましたがやはりエラーが起きました。
どうも僕のPCは原因が他にあるようですまたよらせていただきます。
SAKAEさん
こんにちわ。
上記のスクリプトを実行しても問題が治らないとしたら問題ですね。
うちには98→XPへのアップグレードしたマシンがないので同じ事は試す事はデキないのですが、もしご面倒でなければその時に出たエラー画面(実行画面)をコピー&ペーストしてここに貼り付けられますか?
そうすればどこでエラーがでてつまづいているのかが分かる可能性がありますので。
PC聚楽さま
ご返答ありがとうございます。
申し訳ありません。
僕にはそこまでのスキルがありません、
また定期的に覗かせていただいて何か打開策あったらためさせていただきます。
あちこち漂流してこちらに辿り着き、ようやく解決に到りました。
私は、XPをnLiteでインストールしたクチで、
レジを確認してもScancode Mapが存在しないのに
KB2686509の更新に失敗するという状態で、
困り果てていたところを救われました。
詳しい解説も含め、本当に助かりました。ありがとうございます。
役に立って良かったです!
検索をしていたら自分もこちらにたどり着きました。
自分もXPのOSを作成してインストールした一人で
原因がまったく分からずに困っておりました。
こちらの記事とドイツの方のスクリプトを使わせて頂き
無事に解決しました。とても助かりました。
ありがとうございましたm(-_-)m
本来ならドイツ人の彼が作成したスクリプトを日本語化して載せたかったのですがまったく返事が無かったので無理やりに初期の頃CMDスクリプトだけ日本語にして、このサイトを使ってちょこっとだけ解説しました。
世界中の人がクリスチャンさんに感謝ですね!
ご無沙汰しておりました。
今回無事に解決いたしました。
今回はレジストリーのKeyboard Layoutsの中にあったファイルの日本語のみを残して他を全部削除したらインストールが出来ました。
Keyboard Layout単品削除やKeyboard Layouts単品削除でもインストールできませんでした。
最後は両方削除して行ってみましたがこれもインストール出来ませんでした。
先日http://blogs.dion.ne.jp/datniodeath/archives/10772682.htmlで不要なサブキーを削除という文言を目にして。
日本語以外のサブキーを削除してみたしだいです。
何がよかったのか全くわからないのですがとりあえずご報告までに。