Скрипт 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, я сейчас с этим пойду.