This is how we do in our environment, please check if it suits to yours
Process:
<Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>iexplore</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>firefox</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>chrome</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.ScriptElement</ElementType>
<ScriptType>Powershell</ScriptType>
<Filename>c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe</Filename>
<Arguments>-ExecutionPolicy Unrestricted -file "C:\Windows\SoftwareDistribution\Download\Install\JavaJDK_Uninstall.ps1"</Arguments>
<KillProcess>False</KillProcess>
<TimeBeforeKilling>10</TimeBeforeKilling>
<Variable/>
</Action>
<Action>
<ElementType>CustomUpdateElements.WaitElement</ElementType>
<Wait>60</Wait>
</Action>
<Action>
<ElementType>CustomUpdateElements.ExecutableElement</ElementType>
<PathToExecutable>jdk-7u67-windows-i586.exe</PathToExecutable>
<Parameters>/s</Parameters>
<KillProcess>False</KillProcess>
<TimeBeforeKilling>10</TimeBeforeKilling>
<Variable/>
</Action>
Stop-Process -ProcessName firefox -Force
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /V "EnableJavaUpdate" /D 0 /T REG_DWORD /F
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy" /V "EnableJavaUpdate" /D 0 /T REG_DWORD /F
exit
<lar:And>
<bar:Processor Architecture="0"/>
<bar:FileExists Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe"/>
<bar:FileExists Path="C:\Program Files\Java\jre7\bin\java.exe"/>
<bar:FileVersion Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files\Java\jre7\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
</lar:And>
<lar:And>
<bar:Processor Architecture="9"/>
<bar:FileExists Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe"/>
<bar:FileExists Path="C:\Program Files (x86)\Java\jre7\bin\java.exe"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jre7\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
</lar:And>
<lar:Or>
<lar:And>
<bar:Processor Architecture="0"/><lar:Or>
<lar:Not>
<bar:FileExists Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe"/>
</lar:Not><lar:Not>
<bar:FileExists Path="C:\Program Files\Java\jre7\bin\java.exe"/>
</lar:Not><bar:FileVersion Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files\Java\jre7\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
</lar:Or>
</lar:And>
<lar:And>
<bar:Processor Architecture="9"/><lar:Or>
<lar:Not>
<bar:FileExists Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe"/>
</lar:Not><lar:Not>
<bar:FileExists Path="C:\Program Files (x86)\Java\jre7\bin\java.exe"/>
</lar:Not><bar:FileVersion Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jre7\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
</lar:Or>
</lar:And>
</lar:Or>
Process:
- Kill all open browsers (IE, Firefox, Chrome)
- Uninstall all previous versions of JAVA JDK
- Wait for 60sec
- Start the JDK installation
-
Disable Auto Update from Registry
XML file
<CustomUpdate><Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>iexplore</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>firefox</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.KillProcessElement</ElementType>
<ProcessName>chrome</ProcessName>
</Action>
<Action>
<ElementType>CustomUpdateElements.ScriptElement</ElementType>
<ScriptType>Powershell</ScriptType>
<Filename>c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe</Filename>
<Arguments>-ExecutionPolicy Unrestricted -file "C:\Windows\SoftwareDistribution\Download\Install\JavaJDK_Uninstall.ps1"</Arguments>
<KillProcess>False</KillProcess>
<TimeBeforeKilling>10</TimeBeforeKilling>
<Variable/>
</Action>
<Action>
<ElementType>CustomUpdateElements.WaitElement</ElementType>
<Wait>60</Wait>
</Action>
<Action>
<ElementType>CustomUpdateElements.ExecutableElement</ElementType>
<PathToExecutable>jdk-7u67-windows-i586.exe</PathToExecutable>
<Parameters>/s</Parameters>
<KillProcess>False</KillProcess>
<TimeBeforeKilling>10</TimeBeforeKilling>
<Variable/>
</Action>
</CustomUpdate>
Powershell Script
Stop-Process -ProcessName iexplore -ForceStop-Process -ProcessName firefox -Force
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
$app = Get-WmiObject -Class win32_product | where { $_.Name -like "Java"}
foreach ($a in $app) {$a.Uninstall()}
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /V "EnableJavaUpdate" /D 0 /T REG_DWORD /F
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy" /V "EnableJavaUpdate" /D 0 /T REG_DWORD /F
exit
exit
JDK Installed Rule
<lar:Or><lar:And>
<bar:Processor Architecture="0"/>
<bar:FileExists Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe"/>
<bar:FileExists Path="C:\Program Files\Java\jre7\bin\java.exe"/>
<bar:FileVersion Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files\Java\jre7\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
</lar:And>
<lar:And>
<bar:Processor Architecture="9"/>
<bar:FileExists Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe"/>
<bar:FileExists Path="C:\Program Files (x86)\Java\jre7\bin\java.exe"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jre7\bin\java.exe" Comparison="GreaterThanOrEqualTo" Version="7.0.670.1"/>
</lar:And>
</lar:Or>
JDK Installable Rule
<lar:And><lar:Or>
<lar:And>
<bar:Processor Architecture="0"/><lar:Or>
<lar:Not>
<bar:FileExists Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe"/>
</lar:Not><lar:Not>
<bar:FileExists Path="C:\Program Files\Java\jre7\bin\java.exe"/>
</lar:Not><bar:FileVersion Path="C:\Program Files\Java\jdk1.7.0_67\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files\Java\jre7\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
</lar:Or>
</lar:And>
<lar:And>
<bar:Processor Architecture="9"/><lar:Or>
<lar:Not>
<bar:FileExists Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe"/>
</lar:Not><lar:Not>
<bar:FileExists Path="C:\Program Files (x86)\Java\jre7\bin\java.exe"/>
</lar:Not><bar:FileVersion Path="C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
<bar:FileVersion Path="C:\Program Files (x86)\Java\jre7\bin\java.exe" Comparison="LessThan" Version="7.0.670.1"/>
</lar:Or>
</lar:And>
</lar:Or>