質問

2012年07月29日 19時01分
  • Javaのバージョンを社内で統一したいのですが

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

皆さん、お世話になります。

会社のパソコンのJavaのバージョンを現在の最新である
Java SE 7 Update 5 に揃えたいと考えているのですが、
現在インストールされているのJavaのバージョンがまちまちの状況です。

ざっと種類を数えたところ、
Java(TM) 6 Update 4

Java(TM) 6 Update 33
までの18パターンを数えます。

対象のPC台数は300台程度で、
設置拠点も全国に散らばっています。

そこで、これらの旧バージョンをまずはアンインストールしなくては
ならないのですが、これをタスクスケジューラ利用のサイレントモードで
実行したいと考えています。(=ユーザに意識させない)

いろいろ調べて、MsiExec.exeでサイレントアンインストールできるという
ところまではわかったのですが、その際に引数で指定するレジストリの値が
どのように取得するのかわからず困っています。

参考サイトでは、例えば、バージョン 5.0 をアンインストールする場合

MsiExec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0150000}

でアンインストールできるということが書かれているので、
それに習って、Java6 Update31 を下記コマンドで削除しようとしたところ

MsiExec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0160310}

「この操作は現在インストールされている製品にのみ有効です」
というメッセージが表示され、アンインストールできませんでした。
この値は Specification-Version および Implemenation-Version の
値を組み込むということもなんとなくわかったのですが、
それらをどのように取得するのか調べ切れていません。

そこで、ご存知の方に教えていただきたいのですが、
上記のMsiExec.exeの引数はどのように取得すればよいのでしょうか。
(例えばレジストリから簡単に得られるものだったりするのでしょうか)
もしくは他にこのような要件を満たす手法があればお教えいただきたいのです。

ユーザに管理者権限を与えて、古いJavaを手動削除してもらうというのは
最終手段にしたいと思っております。

よろしくお願いいたします。

2件の回答があります

回答

この内容ですとタイトルは
「Javaのサイレントアンインストールについて」
とかのほうが適切でしたね。すみません。

2012年07月29日 19時04分

回答

以前、この投稿なども見つつjavaのバージョンアップの方法を模索していた時期がありました。
いつの間にやら「古いバージョンのjavaをアンインストールする」コマンドオプションが公開されていましたので、こちらに投稿しておきます。

http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html#installing_with_config_file

2016年01月21日 14時19分

あなたもコメントしましょう!