2012年3月20日火曜日

Javaのアップデートを止める方法

Javaの自動アップデートを止めたいと考えて色々とググッたのでメモメモ。

対象は、Windows XPです。

以下の内容は、実施する場合は設定やセキュリティ管理を自己責任で行える方のみ実施してみてください。
Javaのアップデートも、セキュリティを考えると、本来はキチンと実施した方が良いものですね。


■アップデートを実行しているプログラム
Javaのアップデートを実行しているプログラムは、「jusched.exe」の様です。
タスクマネージャの「プロセス」タブを開いてみて、このプログラムがあれば、Javaのアップデートが動作しているということですね。


■Javaコントロールパネルでの停止(管理者権限が必要)
コントロールパネルのメニューにある「Java」のコントロールパネルを起動します。
メニューの「更新」タブにある「更新を自動的にチェック」のチェックを外して「OK」をクリックすれば、自動更新はストップできます。


個人での利用ならこの方法でOKです。

ただし、この方法はログオンユーザーごとに実行する必要がある為、多数のユーザーアカウントで端末を共有している様な環境だと、この方法だけでは駄目です。

他のユーザーアカウントでログオンしたタイミングで(月初とか)、Javaのアップデートが実行されてしまい、そのままインストールせずに他のユーザーアカウントでログオンしたら、「更新を自動的にチェックを外したはずなのに更新のメッセージ表示される??」といった事が発生して、事情を知らないと混乱してしまいそうです。


■端末ごと更新を止める
Windowsで起動時に動作しているスタートアップから止める方法がありました。

「ファイル名を指定して実行」で「msconfig」と入力して「システム構成ユーティリティ」を起動。
「スタートアップ」タブをみると、「jusched」があるのでチェックを外しました。

「システム構成ユーティリティ」で変更を行うと、再起動を求められます。
また、再起動後、
「システム構成ユーティリティはテストで行う為のものなので、後で戻してね・・・」
的なメッセージが流れます。
こちらは「このメッセージを表示しない」にチェックを入れて「OK」を押さないと毎回でてくるようです。

これで完了です。
ただし、今後は、不定期で手動アップデートを実施しようと考えています。


上記の方法はレジストリに値があります。
キー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
名前: SunJavaUpdateSched
今回は、Windowsドメイン傘下のクライアント全てに適用したいので、スクリプトでレジストリを削除する方法を検討して配布する予定です。


また、以下のようなレジストリキーもあります。
キー: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy
名前: EnableJavaUpdate
こちらを値を1から0に変更すると、上記のJavaコントロールパネルの「更新」自体が表示が無くなって使用できなくあります。

但し、レジストリの変更は、本当に自己責任となるのでくれぐれも注意が必要です。
とさ。

2012年3月17日土曜日

VBScriptでPing

VBSCript で Ping を撃ちたい時のサンプル。

リモート端末にVBScriptで処理を実施したいと考えたのですが、端末が起動しているかどうかを確認してからしたい処理がありました。

そこで、スクリプト内にpingを撃って、疎通結果をTrue/Falseで返す関数にしました。

WMI(Windows Management Instrumentation)を利用しています(=Windows環境です)。


Ping.vbs------------------------------------------------

MsgBox fncPing("192.168.1.1")

Function fncPing(host)
 Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
 Set colItems = objWMI.ExecQuery("select * from Win32_PingStatus where address ='" & host & "'")
 For Each objItem In colItems
  If objItem.StatusCode = 0 Then
   fncPing = True
  Else
   fncPing = False
  End If
 Next
 Set objItem = Nothing
 Set colItems = Nothing
 Set objWMI = Nothing
End Function

---------------------------------------------------


とさ。