Last active
September 13, 2017 13:20
-
-
Save nycdotnet/9d385e847274266e0525 to your computer and use it in GitHub Desktop.
Java update PowerShell script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This script will uninstall anything like *Java* from Add/Remove Programs, Unblock and Install a new JDK, | |
# and set the JAVA_HOME environment variable for the new version. | |
# | |
# You have to set the $jdkInstallerPath first to the location where you got the JDK. Such as: | |
# $jdkInstallerPath = "C:\Users\MyAccount\Downloads\jdk-7u60-windows-x64.exe" | |
# | |
# WARNING: This will uninstall ANYTHING that says Java anywhere in the name!!! Use with caution!!! | |
# | |
# Note: This assumes that you are using the x64 JDK on 64-bit Windows. Not tested in other scenarios. | |
if ($jdkInstallerPath -eq $null) { "You must define `$jdkInstallerPath such as `$jdkInstallerPath=`"C:\Users\MyAccount\Downloads\jdk-7u60-windows-x64.exe`"" } else { "Uninstalling old Java..."; Get-WmiObject -Class win32_product | ? {$_.Name -like "*Java*"} | % { "Uninstalling " + $_.Name ; msiexec /x "$($_.IdentifyingNumber)" /qn | Out-Null}; "Unblocking $jdkInstallerPath ..."; cmd /c "echo.>`"$jdkInstallerPath`":Zone.Identifier" ; $silentSwitch = "/s"; "Installing new Java..."; start-process -FilePath $jdkInstallerPath -ArgumentList $silentSwitch -Wait |Out-Null; $JavaFolderName = dir "C:\Program Files\Java\jdk*"; if ($JavaFolderName -is [System.IO.DirectoryInfo]) {$JavaFolderName = $JavaFolderName.FullName + "\bin"} else {$JavaFolderName = $JavaFolderName[0].FullName + "\bin"}; [Environment]::SetEnvironmentVariable("JAVA_HOME",$JavaFolderName,"Machine"); "Set JAVA_HOME to $JavaFolderName ."; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
what is "Unblocking $jdkInstallerPath ...";
cmd /c "echo.>
"$jdkInstallerPath
":Zone.Identifier" ; means i am new to ps why :Zone.Identifier is here required.