I'm trying to work out a good way to deploy JRE silently through Altiris (Symantec Management Platform) with no user impact e.g killing the IE process.

I noticed JRE when run with /qn and my transform (custom actions detailed at the end of this post) the install works as expected but if Internet Explorer is open the install appears to run correctly (files created, exit code of 0, Applet in Control Panel) but Java doesn't work.

I'm thinking of scheduling the SMP policy to start "At Computer Startup" and checking the Advanced setting of "A user is not logged on to the computer". My deployment experience is primarily in SCCM, SMP is very new to me so in addition to this I'm going to use a VBScript as a "belt and braces" approach.


Set objWMIService = GetObject ("winmgmts:")

For each Process in objWMIService.InstancesOf ("Win32_Process")
If Process.Name = "iexplore.exe" then
End If
Next Set WshShell = WScript.CreateObject("WScript.Shell")
strCmd = "msiexec.exe /I jre1.7.0_25.msi /qn TRANSFORMS=Oracle_Java_Runtime_Environment_7.0.250_x86_P1.0.mst"
Return = WshShell.Run(strCmd , 0, True)

Transform actions (I know some of these are deprecated, but I guess there is no harm in keeping them):

Property Value
JU 0
RebootYesNo No
REBOOT ReallySuppress 


So, my questions are:

  1. Is there a better way to deploy JRE silently with no user impact?
  2. With this method, through SMP, will the package rerun if it fails on exit codes? or should I look into rule based detection (bearing in mind the install appears successful when installed with IE running, but isn't)?
  3. Can other broswers cause similar installation issues?

Any help would be great. If successful, I'll post info in "Deployment Tips".

Many Thanks,


3 Comments   [ + ] Show Comments


  • In addition to transform actions I also like to execute the following registry actions.:

    reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SunJavaUpdateSched /f
    reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\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
    reg add "HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Update\Policy" /v EnableAutoUpdateCheck /t REG_DWORD /d 0 /f

    The best thing to do is run the installer when no user is logged on.
  • I suggest checking for and manually running "msiexec.exe /x{GUID} for all past versions you may have deployed. Java's silent installer will fail, leaving itself in a corrupt state, if any past versions of Java are already installed.
  • Thanks for all the responses, much appreciated. I'm especially intrigued about the install at user log off comments, how is this achieved?
Please log in to comment



It's better if you deploy jre updates when the browsers are closed - preferably at user log off.

Answered 07/03/2013 by: SnowLyric
Second Degree Brown Belt

  • We tried to kill IE prior to the install and ended up with Access Denied and/or run32dll.exe gets hung and Java will not install. What is the best approach to getting the browswers shut down. We are using SCCM and a Task sequence to first uninstall and then install 7u25. Below are two log file segments. J.M.

    7/31/2013 10:30:10 PM Searching Registry Hive SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    7/31/2013 10:30:10 PM Found Application Name: Java 7 Update 25 Version: 7.0.250 Uninstall String: MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217025FF}
    Ending: iexplore with PID 5316
    Ending: iexplore with PID 3516
    Ending: iexplore with PID 3568
    Ending: iexplore with PID 4828
    Unable to end iexplore System.ComponentModel.Win32Exception (0x80004005): Access is denied
    at System.Diagnostics.Process.Kill()
    at SilentUninstall3.Program.CloseIE()


    Ending: iexplore with PID 5148
    Unable to end iexplore System.InvalidOperationException: Cannot process request because the process (5148) has exited.
    at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)
    at System.Diagnostics.Process.Kill()
    at SilentUninstall3.Program.CloseIE()
  • Set the install at user log off. That's the only way I can think of.
  • In my experience, most shops will send out an email asking users to log off from their machines prior to updates like this. The email will state that machines which have users logged in will be forcibly restarted and that IT will have no responsibility for lost data.
Please log in to comment
Answer this question or Comment on this question for clarity