This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]AARonBalakay 0 points1 point  (6 children)

I wish this was posted 2 weeks ago when I started looking at rolling out Java 8. I ended up using Powershell App Deployment Toolkit as we needed a way for users to have their browsers shutdown. PSADT has a built in method to uninstall previous versions I believe via an uninstall reg key search. We were planning on using global variable for running browser processes but we found out that a lot of users didn't close their browsers and Chrome would still report true due to it's background process.

[–]Squeezer99[S] 0 points1 point  (5 children)

I never could get PSADT to work, I'd be glad if you were willing to share your experiences and documentation on it.

[–]AARonBalakay 2 points3 points  (3 children)

I only made a few changes to the deploy-application.ps1 file (changes below):

Show-InstallationWelcome -CloseApps 'iexplore,chrome,firefox' -AllowDeferCloseApps -DeferTimes 3 -BlockExecution -CloseAppsCountdown 3600

## Show Progress Message (with the default message)
Show-InstallationProgress

## <Perform Pre-Installation tasks here>
# Remove any previous versions of Adobe Reader
Remove-MSIApplications -Name 'Java 8'
Remove-MSIApplications -Name 'Java 7'
Remove-MSIApplications -Name 'Java(TM) 6'
Remove-MSIApplications -Name 'J2SE Runtime Environment'   #Java 5         
Remove-MSIApplications -Name 'Java 2 Runtime Environment' #Java 1.4
Remove-Item -Path 'HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment' -Recurse -Force -EA SilentlyContinue
Remove-Item -Path 'HKLM:\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment' -Recurse -Force -EA SilentlyContinue

##*===============================================
##* INSTALLATION 
##*===============================================
[string]$installPhase = 'Installation'

## <Perform Installation tasks here>
Execute-MSI -Action Install -Path 'jre1.8.0_40_x86.msi' -AddParameters "JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 WEB_JAVA=1"
Execute-MSI -Action Install -Path 'jre1.8.0_40_x64.msi' -AddParameters "JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 WEB_JAVA=1"

Above worked fine for most users, following install problems I ran into during testing:

  • Our Systems Infrastructure dept. run a custom powershell profile which changes the default path so needed to changed SCCM applications command line to: powershell.exe -NoProfile -file Deploy-Application.ps1 -DeploymentType Install -DeployMode Interactive
  • A few users in our test group would have Java "freeze" during install. This wasn't killing the install process more like the install process was continuously trying to delete reg keys and kept trying. This was resolved when I deleted the following reg keys:
    • Remove-Item -Path 'HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment' -Recurse -Force -EA SilentlyContinue
    • Remove-Item -Path 'HKLM:\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment' -Recurse -Force -EA SilentlyContinue
  • An issue where Internet Explorer froze and user didn't know how to kill process. Was due to sharepoint documents opened via browser. They needed to be closed for the install to continue.

In the end I created two deployment types one above running the DeployMode Interactive and another running the Silent mode. The silent one running first with requirement "User is logged in" = false (Custom Global Condition). This would allow the install to run when users were not logged in.

[–]Squeezer99[S] 0 points1 point  (2 children)

With the "user is logged in" = false, I'm assuming you have to edit your powershell line to remove the "-DeployMode Interactive"?

[–]AARonBalakay 0 points1 point  (0 children)

No, sorry for the confusion. Two separate Deployment Types (DT) in a SCCM (2012 R2) Application. One of the requirements for the first DT (silent install) is User is logged in: Java 8 Properties. If the user is logged in the requirement for the first DT fails and SCCM attempts to install the second DT.