사무실에서 Java를 최신 상태로 유지하도록 시스템을 설정하고 있습니다. 모든 사람은 모든 다른 버전의 Java를 가지고 있으며, 대부분은 오래되고 안전하지 않으며 일부는 1.4까지 거슬러 올라갑니다. .msi 파일을 푸시하고 자동으로 실행할 수있는 System Center Essentials 서버가 있으며 최신 Java를 설치할 수 있는지 이미 테스트했습니다. 그러나 이전 버전 (예 : 1.4)은 설치 관리자가 제거하지 않으므로 제거해야합니다. 모두가 Windows XP를 실행하고 있습니다.
깔끔한 우연의 일치는 Sun이 Oracle에 의해 방금 구입했으며 Oracle이 이제 "Sun"의 모든 인스턴스를 Java에서 "Oracle"로 변경 한 것입니다. 따라서 검색을 수행하고 모든 Sun Java 프로그램을 제거 할 수 있기 때문에 최신 Java 제거에 대해 걱정할 필요가 없습니다 .
유망한 것으로 보이는 포럼 게시물 에서 다음 배치 스크립트를 발견했습니다 .
@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
그러나 스크립트를 실행하면 다음과 같은 결과가 나타납니다.
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.
그런 다음 멈추는 것처럼 보이고 ctrl-c로 중지합니다.
스크립트를 읽으면서 모든 것을 이해하지 못하지만 왜 레지스트리 키 조각을 프로그램으로 실행하려고하는지 모르겠습니다. 배치 스크립트에 어떤 문제가 있습니까? 어떻게해서 MSI로 전환하여이 사무실을 정리하기 위해 모든 사람에게 배포 할 수 있습니까?
또는 필요한 것을 수행하기 위해 더 나은 솔루션이나 기존 MSI 파일을 제안 할 수 있습니까? 이전 버전의 Java를 사용하여 웹 페이지를로드하는 악용에 대해 들었 기 때문에 모든 컴퓨터에서 이전 버전의 Java를 모두 가져 오려고합니다.