2016-03-31 9 views
0

Je l'ai googlé comme un fou, donc si cela a été posté avant, des excuses.Le script SCCM .cmd ne fonctionnera pas correctement

Je lance généralement des mises à jour via SCCM avec des scripts .cmd, ce qui me permet de désinstaller la version précédente et d'installer la nouvelle version.

code:

@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% 

Pour une raison quelconque, il n'installe jamais la version 64 bits, jamais les deux. J'ai fait ceci comme paquet et application, même résultat. J'ai enlevé la partie "si existe"% ProgramFiles (x86)% \ "", rien. J'ai créé des déploiements séparés et j'ai appelé le 32 bits en premier, rien.

Je suis un peu perdu quant à savoir pourquoi il suffit d'installer la version 64 bits.

Toute aide serait appréciée.

Merci

EDIT: Et oui, je l'ai testé localement, le script fonctionne bien quand pas déployé via SCCM

EDIT: Je tente de déployer ce script Windows 8.1 et 7 machines, de un serveur SCCM 2012 R2. Je l'ai déjà déployé avec ce format, et selon l'expérience, parfois les choses se déforment avec de nouveaux programmes.

Répondre

0

J'ai fini par jeter cette version. J'ai utilisé exactement le même script avec 1.8u73, et cela a très bien fonctionné. Je pense qu'il y a quelque chose qui ne va pas avec l'exécutable 32 bits pour 77.

Et vu que 73 est stable et pique bien sur mes balayages Nessus, je vais aller avec ça pour l'instant.

0

Gareth,

Après avoir regardé votre script et un certain nombre d'autres, j'ai réussi à amalgamer un gâchis de travail qui installe à la fois 32 et 64 bits Java 8u77 runtimes. En ce moment je sais que sa volonté d'installer à une collection, mais je commence juste à tester l'installation avec OSD.

1) Téléchargez les fichiers exe 32 et 64 bits d'Oracle et copiez-les dans votre dépôt.

2) Ouvrez le 32 bits .exe

3) Copiez le fichier jre1.8.0_77.msi de C: \ Users \\ AppData \ Oracle \ Java dossier \ jre1.8.0_77 à votre dépôt.

4) Créez votre fichier java.settings.cfg dans le référentiel

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 

** Oui, je sais pas tout ce travail, mais je les mets toujours en tout cas ...

5) Créer votre fichier 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) En option: Créer un 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) Créez l'application dans SCCM et utilisez les scripts d'installation et de désinstallation. Pour la détection d'installation, j'ai simplement utilisé les codes WMI du script de désinstallation.

Déployez-vous à votre collection et voila, vous devriez avoir une installation JRE opérationnelle complète avec les 32 installateurs 64 bits &. Je ne sais pas si je devrais supprimer les fichiers "copiés" une fois l'installation terminée, mais je suis sûr que d'autres vont entrer et nous faire savoir, et il est assez facile à modifier.

Espérons que cela aide. DC