2016-03-31 61 views
0

我已經使用這個像瘋了一樣,所以如果這已經發布之前,道歉。SCCM .cmd腳本將無法正常工作

我通常使用.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位版本,不可能兼顧。我做了一個Package和Application,結果相同。我已經刪除了「if exists」%ProgramFiles(x86)%\「」部分,沒有任何內容。我創建了獨立的部署,並首先調用了32位,沒有任何東西。

我很遺憾,爲什麼它只安裝64位版本。

任何幫助,將不勝感激。

感謝

編輯:是的,我已經測試它在本地,當通過SCCM

沒有部署腳本的偉大工程

編輯:我試圖在此腳本部署到Windows 8.1和7噸的機器,從SCCM 2012 R2服務器。之前我已經部署了這種格式,而且根據經驗,有時候新的程序會讓事情變得不合時宜。

回答

0

我最終拋棄了這個版本。我用1.8u73完全一樣的腳本,它工作得很好。我認爲77位的32位可執行文件有問題。

而且我認爲73是穩定的,並且在我的Nessus掃描中可以很好地工作,所以我現在要繼續這樣做。

0

加雷,

看你的腳本和其他一些後,我設法合併工作的混亂,將安裝32位和64位Java運行時8u77。現在我知道它會安裝到一個集合,但我只是開始用OSD測試安裝。

1)從Oracle下載32位和64位的exe文件並複製到您的存儲庫。

2)打開32位的.exe

3)複製從C jre1.8.0_77.msi文件:\用戶\\應用程序數據\ 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中創建應用程序並使用安裝和卸載腳本。對於安裝檢測,我只使用了Uninstall腳本中的WMI代碼。

部署到您的收藏和瞧,你應該有一個完整的操作JRE安裝與兩個32位的32位3232329,64位安裝程序。

我不確定一旦安裝完成後是否應該刪除「複製」的文件,但我確定其他人會插入並讓我們知道,並且它很容易修改。

希望這會有所幫助。 DC