2014年7月23日水曜日

[Windows] PCの起動後に毎回 Java Update のポップアップが表示される

PCの起動後に毎回 Java 自動アップデートのポップアップが表示され、Javaをアップグレードする許可を求められる。さらに「更新を自動的にチェックする」設定を解除しても、起動毎に実行されてしまう。

この対策する前に、念のため注意喚起をしておく必要があります。
http://www9.nhk.or.jp/nw9/marugoto/2014/04/0414.html
セキュリティーホールで狙われやすいのがホームページ閲覧ソフトに組み込んで使う Java というソフトや文書を閲覧する Adobe Reader といわれています。


対策1 Javaコントロール・パネル で Java 更新設定を変更する

これが最も妥当な方法です。

ただし管理者権限で変更しないと、変更しても一向に反映されません。この管理者とは管理者ユーザー(Administratorアカウント)を指すのではなく、UAC の管理者特権を意味します。困るのは管理者権限が無くても設定の変更でエラーにならない、でも一向に反映されない!こと。

管理者権限の使用は、アプリケーションを起動するときに右クリックして「管理者として実行」を選択することで管理者特権で実行できます。

Javaコントロール・パネルの起動は、
  • Windows のスタートメニューから Java のショートカット、
    例えば「Configure Java」などを右クリックして管理者権限で起動する。
  • これが無ければ、Java のインストールディレクトリ
    (例) C:\Program Files\Java\jre7\bin
    から javacpl.exe を右クリックして管理者権限で起動する。
Javaコントロール・パネル の「更新」タブから、「更新を自動的にチェックする」チェックを外します。


対策2 Java Auto Updater を起動させない

ちょっと乱暴な方法。プロセスが常駐していて不人気である jusched プロセスが起動しないようにします。

コントロール パネル > システムとセキュリティ > 管理ツール
と辿って「システム構成」を開く、この「スタートアップ」タブから、Java の項目 (jusched.exe コマンドの項目) のチェックを外します。

ただ基本は Javaコントロール・パネル から操作するものだから、この状態で Java 自動更新を有効にすると、Java のスタートアップ項目が1つ追加されて [On / Off] の2つになっちゃう。Javaコントロール・パネル で「更新を自動的にチェックする」設定を解除しておけば jusched プロセスは停止するし常駐もしなくなります。


Java Auto Updater の仕組みについて

jusched.exe は Java アップデート スケジューラ、自動更新が有効だとプロセスが常駐している。
jucheck.exe は Java Auto Updaterプログラム(以前のJavaバージョンでは、という但し書きが Java 7 の資料にあったので、Java 8 だと違うのか?)

Javaコントロール・パネルを管理者権限で起動しないと設定の変更が保存できないのは、設定先がレジストリだからと思われる。

HKEY_CURRENT_USER\Software\JavaSoft\Java Update\Policy キーに EnableAutoUpdateCheck というバイナリ値があると、jusched プロセスは常駐しない(更新を自動的にチェックしない)様子です、バイナリ (REG_BINARY) なので中身はよく分からない。

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy キー
こちらは Java 自動更新の有効/無効とは関係がなさそう。

jusched プロセスのログはこちら
%LOCALAPPDATA%\Temp\jusched.log


関連する資料のリンク

Javaコントロール・パネルでJava更新設定が保存されないのはなぜですか。
https://java.com/ja/download/help/javacpl.xml

Java自動更新とは何ですか。通知設定を変更するにはどうすればよいですか。
https://java.com/ja/download/help/java_update.xml

Java コントロールパネル (Update)
http://docs.oracle.com/javase/jp/7/technotes/guides/jweb/jcp.html

Windows Online Installation and Update FAQ
http://www.oracle.com/technetwork/java/javase/windows-faq-140694.html#processes
To shutdown these processes — jucheck.exe and jusched.exe —, simply uncheck the "Check for Updates Automatically" checkbox in the Update tab of Java Control Panel.