Kako provjeriti verziju, nadograditi ili ukloniti Java pomoću programa PowerShell?

Java Runtime Environmentmen (JRE) naširoko se koristi za pokretanje različitih poslovnih aplikacija napisanih u javi. No neki programi zahtijevaju pokretanje određene verzije Java i možda neće ispravno raditi u drugim verzijama. U ovom ćemo članku pogledati kako shvatiti koje su verzije Java instalirane na računalima korisnika na vašoj mreži te kako ukloniti ili ažurirati verziju JRE-a pomoću PowerShell-a..

sadržaj:

  • Kako saznati instaliranu verziju Java na sustavu Windows?
  • Kako pronaći verziju Java iz PowerShell-a?
  • PowerShell: Nabavite verziju Java na udaljenim računalima
  • PowerShell skripta za deinstaliranje svih verzija Jave
  • Kako preuzeti instalaciju Java JRE pomoću programa PowerShell?

Kako saznati instaliranu verziju Java na sustavu Windows?

Ako upišete 'broj verzije Java instaliran na vašem računaluJava'u okvir za pretraživanje Windows 10 i pokrenite Java applet.

Otvara se prozor "O Java" koji prikazuje trenutnu verziju JRE. U mom slučaju jest Ažuriranje verzije Java 23 verzije (izgradnja 1.8.0_231-b11). Obratite pažnju na vrijednost izrade JRE. U svim inačicama Jave označen je početak 1, zatim glavni broj verzije JRE (imam ovo 8), zatim broj ažuriranja.

Također možete saznati trenutnu verziju Java na ploči 'Programi i komponente sustava Windows' (Win + R -> appwiz.cpl).

Iz naredbenog retka možete prikazati trenutnu verziju Java. Pokrenite cmd.exe i pokrenite naredbu:

java -verzija

java verzija "1.8.0_231" Java (TM) SE Runtime Environment (graditi 1.8.0_231-b11) Java HotSpot (TM) klijent VM (graditi 25.231-b11, mješoviti način) 

Kako pronaći verziju Java iz PowerShell-a?

Java verziju možete saznati na računalu pomoću PowerShell-a. Jednostavno možete provjeriti verziju izvršne datoteke java.exe (put do nje je upisan u varijable okoline prilikom instaliranja JRE SE na vaše računalo). Izdat ćemo verziju datoteke java:

Get-Command Java | Verzija za odabir objekta

Možete prikazati detaljne informacije o verziji, ažuriranju i izdanju Jave:

Get-Command java | Verzija Select-Object -ExpandProperty

Revizija glavnih manjih građevina ----- ----- ----- -------- 8 0 2310 11 

Ako trebate dobiti vrijednost niza Java verzije za skripte, upotrijebite:

(Get-Command java | Odaberite-Objekt -ExpandProperty verzija) .tostring ()

Java verziju možete saznati i putem WMI klase koja sadrži popis instaliranih programa u sustavu Windows:

Get-WmiObject -Class Win32_Product -Filter "Ime poput"% Java% ""

IdentificationNumber: 26A24AE4-039D-4CA4-87B4-2F32180231F0 Naziv: Java 8 Ažuriranje 231 Dobavljač: Oracle Corporation Verzija: 8.0.2310.11 Opis: Java 8 Ažuriraj 231 Identificirajući broj: 4A03706F-666A-4037-7777-5F2748764D10 Naziv: Dobavljač automatskog ažuriranja: Oracle Corporation Verzija: 2.8.231.11 Opis: Java Auto Updater

Dobiveni se ID-i mogu koristiti u budućnosti za ispravno uklanjanje JRE.

Ako želite prikazivati ​​samo verzije Java, a trebate izuzeti Java Auto Updater, koristite naredbu:

Get-WmiObject -Class Win32_Product -Filter "Ime poput"% Java% ", a ne Ime poput"% Java Auto Updater% "" | Odaberite -Proširi verziju

PowerShell: Nabavite verziju Java na udaljenim računalima

Ako želite napraviti popis verzija Java koje se koriste na računalima ili poslužiteljima u vašoj domeni, možete koristiti sljedeću skriptu PowerShell-a. Ova skripta može daljinski upitati poslužitelja s popisa navedenog ručno, učitati popis iz tekstualne datoteke. Popis poslužitelja ili računala iz AD-a također možete dobiti pomoću cmdleta Get-ADComputer iz modula RSAT-AD-PowerShell.
# PowerShell skripta za provjeru Java SE verzije (JRE) na udaljenim računalima / poslužiteljima

# Provjerite verziju Java s popisa računala

# $ computers = @ ('sever1, server2, server3')

# Provjerite verziju Java po popisu poslužitelja u tekstnoj datoteci

# $ računala = Nabavite sadržaj C: \ PS \ ServerList.txt

# Nabavite verziju Java na svim poslužiteljima domena

$ computers = ((get-adcomputer -Filter omogućeno -eq "true" -and OperatingSystem -Like '* Windows Server *'). ime) .tostring ()

Get-WmiObject -Class Win32_Product -ComputerName $ computers -Filter "Ime poput"% Java% ", a ne Ime poput"% Java Auto Updater% "" | Odaberite __Sverver, Verzija

Kao rezultat toga, dobit ćete ploču s popisom računala / poslužitelja i verzije Java na njima.

U mom slučaju, prilikom provjere verzije Java na računalima, pronašao sam 35 različitih verzija JRE-a!

PowerShell skripta za deinstaliranje svih verzija Jave

Zašto ćete možda trebati deinstalirati prethodne verzije Java u sustavu Windows?

  • Prije instaliranja nove verzije Java, preporučljivo je deinstalirati sve prethodne verzije. Kao i kod svih drugih proizvoda na Javi, funkcionalnost se stalno ažurira i kritične ranjivosti su ispravljene. Ako imate instaliranu stariju verziju Java, svoje računalo izlažete riziku od infekcije i iskorištavanja poznatih i jednodnevnih ranjivosti. Java ima ugrađeni mehanizam za automatsko ažuriranje, ali iz različitih razloga administratori ga mogu onemogućiti na računalima domena.
  • Nemate komercijalnu pretplatu za upotrebu Java JRE. Od 2019. godine, Oracle mijenja politiku Java licenciranja. Ako želite koristiti starije verzije Oracle JDK (Java SE), trebate kupiti pretplaćenu pretplatu. Ovo se odnosi na sva izdanja Java JRE-a nakon 16. travnja 2019. (počevši od ažuriranja Java 8 SE 211). Dugoročna podrška pruža se za komercijalne verzije Java SE (ažuriranje objavljeno 5 godina nakon izdanja). Besplatna verzija Java - Otvorite jdk (distribuira se pod GPL), morat ćete je ažurirati jednom u šest mjeseci. Još jedan nedostatak Otvorite jdk - dok nema normalnih instalacijskih alata za Windows. Morate preuzeti i instalirati Open JDK ručno. Postoji jedna prihvatljiva opcija instaliranja Open JDK pomoću upravitelja paketa Chocolatey: choco install openjdk

Sljedeća skripta PowerShell može se koristiti za uklanjanje svih instaliranih verzija Java na računalu.

$ jre_installed = Get-WmiObject -Class Win32_Product -Filter "Ime poput"% Java% ""
$ jre_installed.Uninstall ()

Međutim, gore opisana naredba za uklanjanje temelji se na WMI i, unatoč svojoj jednostavnosti, djeluje prilično sporo.

Umjesto toga, možete dobiti popis instalirane Jave iz registra i ukloniti sve pronađene verzije Java prema GUID-u proizvoda, koji se generira prilikom instaliranja softvera putem MSI-ja.

#PowerShell skripta za uklanjanje svih verzija Java SE (JRE) na računalu
$ uninstall32 = gci "HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Deinstaliranje" | foreach gp $ _. PSPath | ? $ _ -like "* Java *" | odaberite UninstallString
$ uninstall64 = gci "HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall" | foreach gp $ _. PSPath | ? $ _ -like "* Java *" | odaberite UninstallString
# Uklanjanje 64-bitnih verzija Jave
ako je ($ uninstall64)
$ uninstall64 = $ uninstall64.UninstallString -Replace "msiexec.exe", "-Replace" / I "," "-Replace" / X "," "
$ uninstall64 = $ uninstall64.Trim ()
Napišite "Deinstaliranje ..."
start-process "msiexec.exe" -arg "/ X $ uninstall64 / qb" -Čekaj

# Uklanjanje 32-bitnih verzija Jave
ako je ($ uninstall32)
$ uninstall32 = $ uninstall32.UninstallString -Replace "msiexec.exe", "-Replace" / I "," "-Replace" / X "," "
$ uninstall32 = $ uninstall32.Trim ()
Napišite "Deinstaliranje svih verzija Java SE ..."
start-process "msiexec.exe" -arg "/ X $ uninstall32 / qb" -Čekaj


PowerShell skripte iz ovog članka dostupne su u mom spremištu na GitHubu https://github.com/winadm/posh/tree/master/Java.

Kako preuzeti instalaciju Java JRE pomoću programa PowerShell?

Sljedeća skripta PowerShell omogućava vam automatsko preuzimanje najnovije verzije Java distribucije (možete je preuzeti izvanmrežni ili online instalacijski program) s službenog web mjesta i instaliranje na korisničko računalo. Pri tome suzbijamo zahtjev za ponovno pokretanje i isključujemo automatska Java ažuriranja.

Da biste s web mjesta preuzeli instalacijsku datoteku, koristite cmdlet Invoke-WebRequest.

#PowerShell skripta za automatsko preuzimanje i instaliranje najnovije verzije Java SE (JRE) na računalo
[Net.ServicePointManager] :: SecurityProtocol = [Net.SecurityProtocolType] :: Tls12
# preuzmite internetski program za instaliranje Java
$ URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % [regex] :: podudaranja ($ _, '(? :)'). Grupe [1] .Value
# preuzmi izvanmrežni program za instaliranje Java
# $ URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % [regex] :: podudaranja ($ _, '(? :)'). Grupe [1] .Value
Invoke-WebRequest -UseBasicParsing -OutFile jre8.exe $ URL
Start-Process. \ Jre8.exe '/ s REBOOT = 0 SPONSORS = 0 AUTO_UPDATE = 0' -čekajte
odjek $?

Ako računalo stoji iza proxyja, morate konfigurirati PowerShell za pristup internetu putem proxyja.

Prvi redak u skripti dodan je za prelazak na TLS 1.2 protokol. U suprotnom, kad sam počeo, dobio sam pogrešku:

Invoke-WebRequest: Zahtjev je prekinut: neuspjeh u stvaranju SSL / TLS sigurnog kanala.

Skripta će automatski preuzeti Java instalacijsku datoteku, spremiti je na disk kao jre8.exe i instalirati JRE.