2014/03/10

ちょっと残念な XP の EOS 通知

※このネタで某メディアに記事を執筆中。その記事を見ても、コピペ、捏造、盗用なんていわないでください。同一人物ですんで。→ 公開されました: “Windows XPのサポート終了のお知らせ”のお知らせ @IT

2014 年 3 月 8 日に「Windows XP のサポート終了のお知らせ (KB2934207)」(MS) という更新プログラムが Windows XP 向けに Windows Update 経由で配信されました。この更新プログラムにより、XP ユーザーさんはここ数日で右(→)のポップアップを目にすることになるはずです。



日本時間だとサポート終了は実際には 2014 年 4 月 9 日なのが残念なところ。単純に英語のメッセージを日本語にしちゃったんでしょうね。

追記) こちらの事前のアナウンス (MS)によると、全世界統一で 2014 年 4 月 8 日と表示されるそうです。

この更新プログラムは、ログオン時に 1 回だけこのメッセージを表示します。その後、毎月 8 日にメッセージを表示するようです。ログオン時と 8 日のトリガーでこのメッセージが一度でも表示された場合は、次回のログオン時には表示されなくなります。「今後、このメッセージを表 示しない」をチェックすると、毎月 8 日の通知が表示されなくなります。ややこしいですが、この仕組みがどうなっているのかを探ってみました。


この更新プログラムの一部 %Windir%\System32\xp_eos.exe を強引に覗いてみると、exe ファイルの中にメッセージが書き込まれています。そのためサポート期限切れ後最初の 5 月 8 日に表示されるときに、「終了しました」と過去形にはならないようです。それとも、4 月 9 日の最後の定例アップデートで、過去形表現バージョンに更新されたりして。でも、英語メッセージは“Windows XP End of Support is on April 8th, 2014. Click Here to learn more”なそう (MS) なので、それはないか。

この更新プログラムのインストールで再起動は求められません。でも、再起動しないと、このメッセージがログオン時や、もう過ぎましたが 3 月 8 日 (毎月の 8 日) に表示されることはないでしょう。また、ログオン時の通知は、2 回目の再起動時になると思います。なぜかというと...

更新プログラム KB2934207 をインストールすると、ログオン時に xp_eos.exe -c を実行するのと、毎月 8 日 15 時に xp_eos.exe を実行する、2 つのタスクが登録されます。ただし、更新プログラム KB2934207 をインストールした直後は、これらのタスクは存在しません。

ではいつ登録されるのかというと、 更新プログラム KB2934207 をインストールしたときに HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce に登録される xp_eos.exe /r というコマンドラインが実行されたとき、つまり、次回起動時に登録されるという仕組みになっています。そのため、ログオン時のタスク実行はさらに次の起動時ということになります。その前に 8 日 15 時のほうのタスクが実行されれる場合があります。

ちなみに、「今後、このメッセージを表示しない」をチェックした場合、タスクが削除されるのではなく、レジストリに HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DisableEOSNotification および HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\DisableEOSNotification が作成され、この値を見て非表示の判断をするようになっています。いないとは思いますが、メッセージを復活したければ 2 つの DisableEOSNotification を削除すればいいでしょう。

REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DisableEOSNotification /f
REG DELETE HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion /v DisableEOSNotification /f

って感じでしょうか。実際にやってみたわけではありません。間違ってたらごめんなさい。

xp_eos.exe -c でログオン時に 1 回だけ表示される仕組みはよく分かりませんでしたが、2 つのタスクを削除して、たぶん、「Microsoft Windows XP のサポート終了に関する毎月のお知らせ」タスクが実行済みであるかどうかで判断していると思います。ですので、8 日のほうの条件でメッセージが表示された場合、ログオン時の通知は行われません (xp_eos.exe -c は何も表示しません)。xp_eos.exe /r を実行してタスクを再登録すると、ログオン時の 1 回限りの通知 (xp_eos.exe -c による表示) をすぐに復活させることができます。

4/2 追記) ログオン時の xp_eos.exe -c の通知は 1回限りでなく、前回の xp_eos.exe -c または xp_eos.exe の実行から 1 ヶ月経過すると復活するようです。つまり、非表示にしない限り、PC を利用していれば必ず月に1度はメッセージを表示するようになっています。

なんてことを、Windows Sysinternals の Strings (MS、日本語表示してくれないのが不満) やProcmon.exe (MS) のキャプチャーで調べてみたりなんかして。

更新プログラム KB2934207 を午前中にインストールしたのに、今日までメッセージが表示されなかったことに?と思いちょっと調べてみました。どうでもいいことなんですけど。

ところで、KB2934207のサポート技術情報 (MS) には、「この更新プログラムは 2014 年 4 月 8 日に、Windows XP のサポート終了に関する Windows XP のユーザーに通知を送信する関数を使用できます。」と書いてますが、どこが関数? と思いきや、「This update enables the function that sends a notification to Windows XP users about the end of support for Windows XP on April 8, 2014. 」の機械翻訳でした。“関数”ではなく単なる“機能”っすね。

追記) KB2934207 の通知じゃ生ぬるいという場合は、こんなスクリプトを仕込んでみては?

5 月の定例アップデートまでは比較的安全という考えになってます。

xp_eos.vbs

さらに追記) 企業内で Windows Server Update Services (WSUS) を利用している場合、KB2934207 は配布されないので、WSUS クライアントになっている Windows XP に通知は行われません。WSUS に KB2934207 更新プログラムが同期されることがないので、承認/非証人の対応も必要ないです。

さらに、さらに追記) 
4 月 8 日の午後 3 時、街中の端末という端末で、このメッセージがポップアップされたりして。ATM はたぶんサポート期間中の Embedded だろうからないかもしれませんが、本屋の検索端末、写真屋さんのセルフ端末、デジタル サイネージ、歯医者さんのレントゲン映すやつ...

0 件のコメント: