Скрипт SCCM .cmd не будет работать должным образом

Я гуглил это как сумасшедший, поэтому, если это было опубликовано ранее, извинения.

Я обычно отправляю обновления через SCCM со скриптами.cmd, чтобы я мог удалить предыдущую версию и установить новую версию заново.

код:

@echo off

REM Kill IE & Java Processes
cls
echo --------------------------------------------------------
echo       This will kill Browsers and Java Processes
echo --------------------------------------------------------
taskkill /F /IM iexplorer.exe
taskkill /F /IM iexplore.exe
taskkill /F /IM firefox.exe
taskkill /F /IM chrome.exe
taskkill /F /IM jusched.exe
taskkill /F /IM jp2launcher.exe
taskkill /F /IM java.exe
taskkill /F /IM javaw.exe
taskkill /F /IM jqs.exe

REM Uninstalling Old JRE Versions
cls
echo --------------------------------------------------------
echo.              DO NOT CLOSE THIS WINDOW
echo. All the Java versions from your computer are being removed.
echo --------------------------------------------------------
wmic product where "name like 'J2SE%%'" call uninstall
wmic product where "name like 'Java 2%%'" call uninstall
wmic product where "name like 'Java 3%%'" call uninstall
wmic product where "name like 'Java 4%%'" call uninstall
wmic product where "name like 'Java 5%%'" call uninstall
wmic product where "name like 'Java(TM) 6%%'" call uninstall
wmic product where "name like 'Java 7%%'" call uninstall
wmic product where "name like 'Java 8%%'" call uninstall

REM Installing Java 1.8u77
cls
echo --------------------------------------------------------
echo .
echo .
echo .      Installing Java Runtime Environment - Please Wait.
echo .         (This window will close once installed)
echo .

mkdir c:\programdata\oracle\java
mkdir "c:\windows\sun\java\deployment"
copy  java.settings.cfg c:\programdata\Oracle\Java\java.settings.cfg   >>c:\programdata\oracle\java\copylog.log

REM Installing JRE 32-bit
"%~dp0jre-8u77-windows-i586.exe" INSTALL_SILENT=1 STATIC=0 AUTO_UPDATE=0 WEB_JAVA=1 WEB_ANALYTICS=0 EULA=0 REBOOT=0

REM If 64-bit Windows JRE 64-bit is also required
REM Installing JRE 64-bit
if exist "%ProgramFiles(x86)%\" "%~dp0jre-8u77-windows-x64.exe" INSTALL_SILENT=1 STATIC=0 AUTO_UPDATE=0 WEB_JAVA=1 WEB_ANALYTICS=0 EULA=0 REBOOT=0

REM Disable automatic updates
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SunJavaUpdateSched /f
reg add "HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t REG_DWORD /d 0 /f

copy deployment.config c:\windows\sun\java\deployment\deployment.config   >>c:\programdata\oracle\java\copylog.log
copy deployment.properties c:\windows\sun\java\deployment\deployment.properties   >>c:\programdata\oracle\java\copylog.log
copy exception.sites c:\windows\sun\java\deployment\exception.sites   >>c:\programdata\oracle\java\copylog.log

REM Return exit code to SCCM
exit /B %EXIT_CODE%

По какой-то причине он устанавливает только 64-битную версию, но не обе одновременно. Я сделал это как пакет и приложение, тот же результат. Я удалил часть "если существует"%ProgramFiles(x86)%\"", ничего. Я создал отдельные развертывания и назвал 32-битный первым, ничего.

Я немного растерялся из-за того, почему он устанавливает только 64-битную версию.

Любая помощь будет оценена.

Спасибо

РЕДАКТИРОВАТЬ: И да, я проверил его локально, скрипт отлично работает, когда не развернут через SCCM

РЕДАКТИРОВАТЬ: я пытаюсь развернуть этот сценарий на компьютерах с Windows 8.1 и 7, с сервера SCCM 2012 R2. Я использовал этот формат раньше, и, как подсказывает опыт, иногда новые программы теряют форму.

2 ответа

Гарет,

Посмотрев ваш сценарий и ряд других, мне удалось объединить рабочий беспорядок, который установит как 32-разрядные, так и 64-разрядные среды выполнения Java 8u77. Прямо сейчас я знаю, что он будет установлен в коллекцию, но я только начинаю тестировать установку с OSD.

1) Загрузите как 32-, так и 64-битные исполняемые файлы из Oracle и скопируйте их в свой репозиторий.

2) Откройте 32-битный.exe

3) Скопируйте файл jre1.8.0_77.msi из папки C:\Users\\AppData\Oracle\Java\jre1.8.0_77 в свой репозиторий.

4) Создайте свой файл java.settings.cfg в хранилище

INSTALL_SILENT=Enable
STATIC=Disable
AUTO_UPDATE=Disable
WEB_JAVA=Enable
WEB_JAVA_SECURITY_LEVEL=H
WEB_ANALYTICS=Disable
EULA=Disable
REBOOT=Disable
NOSTARTMENU=Disable
SPONSORS=Disable  

** Да, я знаю не все эти работы, но я все равно их вкладываю...

5) Создайте файл install.cmd:

@echo off

REM *** Copy the files needed for install to the appropriate locations
    IF NOT EXIST "%allusersprofile%\Oracle\Java" md "%allusersprofile%\Oracle\Java"
    copy /y "%~dp0java.settings.cfg" "%allusersprofile%\Oracle\Java"

    IF NOT EXIST "C:\Windows\System32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_77" md "C:\Windows\System32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_77"
    copy /y "%~dp0jre1.8.0_77.msi" "C:\Windows\System32\config\systemprofile\AppData\LocalLow\Oracle\Java\jre1.8.0_77"

REM *** Start our main x86 installer. Change your options here.
    start /w "x" jre-8u77-windows-i586.exe /s SPONSORS=Disable INSTALLCFG=%~dp0java.settings.cfg REBOOT=ReallySuppress /L*V "C:\Windows\CCM\SoftwareLogs\JRE8u77Install.txt"
REM *** Start our main x64 installer. Change your options here.
    if exist "%ProgramFiles(x86)%\" start /w "x" jre-8u77-windows-x64.exe /s SPONSORS=Disable INSTALLCFG=%~dp0java.settings.cfg REBOOT=ReallySuppress /L*V "C:\Windows\CCM\SoftwareLogs\JRE8u77x64Install.txt"

REM *** Exit the script back to SCCM.
exit /B %EXIT_CODE%

6) Необязательно: Создайте uninstall.cmd

@Echo OFf
REM Java Runtime 8 Uninstallers for x86 and x64 Update 77
msiexec /x {26A24AE4-039D-4CA4-87B4-2F83218077F0} /q
msiexec /x {26A24AE4-039D-4CA4-87B4-2F86418077F0} /q

7) Создайте приложение в SCCM и используйте сценарии установки и удаления. Для определения установки я просто использовал коды WMI из сценария Uninstall.

Разверните в свою коллекцию и вуаля, у вас должна быть полная операционная установка JRE с 32- и 64-битными установщиками.

Я не уверен, стоит ли мне удалять "скопированные" файлы после завершения установки, но я уверен, что другие подключатся и дадут нам знать, и это достаточно легко изменить.

Надеюсь это поможет. ОКРУГ КОЛУМБИЯ

В итоге я просто выбросил эту версию. Я использовал точно такой же скрипт с 1.8u73, и он работал просто отлично. Я думаю, что-то не так с 32-битным исполняемым файлом для 77.

И, учитывая, что 73 стабильна и хорошо пингует мои сканеры Nessus, я сейчас с этим пойду.

Другие вопросы по тегам