SCCM .cmd脚本无法正常工作

时间:2016-03-31 22:20:23

标签: java sccm

我用疯子搜索了这个,所以如果之前发布过,请道歉。

我通常使用.cmd脚本通过SCCM推送更新,因此我可以卸载以前的版本,并安装新版本。

代码:

@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部署时脚本效果很好

编辑:我正在尝试从SCCM 2012 R2服务器将此脚本部署到Windows 8.1和7计算机。我之前已经使用过这种格式,并且根据经验的要求,有时候事情会因新程序而变形。

2 个答案:

答案 0 :(得分:0)

我最终只是抛弃了这个版本。我使用与1.8u73完全相同的脚本,它工作得很好。我认为77位的32位可执行文件有问题。

看到73在我的Nessus扫描中稳定并且很好,我现在将继续这样做。

答案 1 :(得分:0)

加雷,

在查看了您的脚本和其他一些脚本之后,我设法合并了一个将安装32位和64位Java 8u77运行时的工作混乱。现在我知道它将安装到一个集合,但我刚开始用OSD测试安装。

1)从Oracle下载32位和64位exe文件并复制到您的存储库。

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代码。

部署到您的收藏中,您应该拥有一个完整的操作JRE安装,包括32& 64位安装程序。

我不确定在安装完成后是否应删除“复制”文件,但我确定其他人会插入并告知我们,并且很容易修改。

希望这会有所帮助。 DC