Saya sedang menyiapkan sistem untuk menjaga agar Java di kantor kami tetap terbaru. Setiap orang memiliki semua versi Jawa yang berbeda, banyak dari mereka tua dan tidak aman, dan beberapa berasal dari 1.4. Saya memiliki server System Center Essentials yang dapat mendorong dan menjalankan file .msi, dan saya sudah menguji bahwa ia dapat menginstal Java terbaru. Tetapi versi lama (seperti 1.4) tidak dihapus oleh penginstal, jadi saya harus mencopotnya. Setiap orang menjalankan Windows XP.
Kebetulan rapi adalah bahwa Sun baru saja dibeli oleh Oracle dan Oracle sekarang telah mengubah semua instance "Sun" menjadi "Oracle" di Jawa. Jadi, saya dapat dengan mudah tidak perlu khawatir tentang menghapus instalasi Java terbaru, karena saya hanya dapat melakukan pencarian dan menghapus semua program Sun Java.
Saya menemukan skrip batch berikut pada posting forum yang tampak menjanjikan:
@echo off & cls
Rem List all Installation subkeys from uninstall key.
echo Searching Registry for Java Installs
for /f %%I in ('reg query HKLM\SOFTWARE\microsoft\windows\currentversion\uninstall') do echo %%I | find "{" > nul && call :All-Installations %%I
echo Search Complete..
goto :EOF
:All-Installations
Rem Filter out all but the Sun Installations
for /f "tokens=2*" %%T in ('reg query %1 /v Publisher 2^> nul') do echo %%U | find "Sun" > nul && call :Sun-Installations %1
goto :EOF
:Sun-Installations
Rem Filter out all but the Sun-Java Installations. Note the tilda + n, which drops all the subkeys from the path
for /f "tokens=2*" %%T in ('reg query %1 /v DisplayName 2^> nul') do echo . Uninstalling - %%U: | find "Java" && call :Sun-Java-Installs %~n1
goto :EOF
:Sun-Java-Installs
Rem Run Uninstaller for the installation
MsiExec.exe /x%1 /qb
echo . Uninstall Complete, Resuming Search..
goto :EOF
Namun, ketika saya menjalankan skrip, saya mendapatkan output berikut:
Searching Registry for Java Installs
'DEV_24x6' is not recognized as an internal or external command,
operable program or batch file.
'SUBSYS_542214F1' is not recognized as an internal or external command,
operable program or batch file.
Dan kemudian muncul hang dan saya ctrl-c untuk menghentikannya.
Membaca skrip, saya tidak mengerti segalanya, tapi saya tidak tahu mengapa ini mencoba menjalankan potongan kunci registri sebagai program. Apa yang salah dengan skrip batch? Bagaimana saya bisa memperbaikinya, sehingga saya bisa beralih ke entah bagaimana mengubahnya menjadi MSI dan menyebarkannya ke semua orang untuk membersihkan kantor ini?
Atau sebagai alternatif, dapatkah Anda menyarankan solusi yang lebih baik atau file MSI yang ada untuk melakukan apa yang saya butuhkan? Saya hanya ingin memastikan untuk mengeluarkan semua versi lama Java dari komputer semua orang, karena saya pernah mendengar tentang eksploit yang menyebabkan halaman web dimuat menggunakan Java versi lama dan saya ingin menghindarinya.