A Java verziójának ellenőrzése, frissítése vagy eltávolítása a PowerShell használatával?

A Java Runtime Environmen (JRE) széles körben használják különféle java nyelvű vállalati alkalmazások futtatására. Egyes programok futtatásához azonban szükség van egy bizonyos Java verzióra, és előfordulhat, hogy más verziókban nem működnek megfelelően. Ebben a cikkben megvizsgáljuk, hogyan deríthetjük ki, hogy a Java mely verziói vannak telepítve a hálózat felhasználói számítógépeire, valamint hogyan távolíthatjuk el vagy frissíthetjük a JRE verzióját a PowerShell használatával..

Tartalom:

  • Hogyan lehet megtudni a Java telepített verzióját a Windows rendszeren?
  • Hogyan lehet megtalálni a Java verziót a PowerShell-ből?
  • PowerShell: Java változat letöltése a távoli számítógépeken
  • PowerShell szkript a Java összes verziójának eltávolításához
  • Hogyan tölthető le a Java JRE telepítése a PowerShell használatával?

Hogyan lehet megtudni a Java telepített verzióját a Windows rendszeren?

A Java verziószámát telepítheti a számítógépére, ha 'Jáva”a Windows 10 keresőmezőbe, és futtassa a Java kisalkalmazást.

A megnyíló "About Java" ablak megjeleníti a JRE aktuális verzióját. Az én esetemben az Java 8-as verzió 81. frissítése (1.8.0_231-b11 build). Vegye figyelembe a JRE építkezés értékét. A Java összes verziójában a kezdet szerepel 1, akkor a JRE fő verziószáma (ezt megvan 8), majd a frissítés számát.

A Java aktuális verzióját a 'Programok és Windows összetevők' panelen (Win + R ->) is megismerheti az appwiz.cpl).

A Java aktuális verzióját a parancssorból jelenítheti meg. Futtassa a cmd.exe fájlt, és futtassa a következő parancsot:

java-verzió

Java (TM) SE futási környezet (1.8.0_231-b11) java verziója (Java 1.8.0_231-b11) Java HotSpot (TM) kliens virtuális gép (25.231-b11 verzió, vegyes mód) 

Hogyan lehet megtalálni a Java verziót a PowerShell-ből?

A Java verzió a számítógépen a PowerShell használatával található meg. Egyszerűen ellenőrizheti a java.exe futtatható fájl verzióját (a JRE SE telepítéséhez a számítógépre a környezeti változókba írja az elérési útját). A java fájl verzióját adjuk ki:

Get-Command Java | Select-Object Version

Részletes információkat jeleníthet meg a Java verziójáról, frissítéséről és kiadásáról:

Get-Command java | Select-Object -ExpandProperty verzió

Major Minor Build Revision ----- ----- ----- -------- 8 0 2310 11 

Ha a szkriptekben történő felhasználáshoz be kell szereznie a Java verzió karakterláncértékét, akkor használja:

(Get-Command java | Select-Object -ExpandProperty Version) .tostring ()

A Java verziót a WMI osztályon keresztül is megismerheti, amely a Windows telepített programjainak listáját tartalmazza:

Get-WmiObject -Class Win32_Product -Filter "Név, mint '% Java%'"

IdentifyingNumber: 26A24AE4-039D-4CA4-87B4-2F32180231F0 Név: Java 8 Update 231 Gyártó: Oracle Corporation Verzió: 8.0.2310.11 Felirat: Java 8 Update 231 IdentifyingNumber: 4A03706F-666A-4037-7777-5F2748764D Automatikus frissítő gyártó: Oracle Corporation Verzió: 2.8.231.11 Felirat: Java Auto Updater

A megszerzett azonosítók a jövőben felhasználhatók a JRE megfelelő eltávolítására.

Ha csak a Java verziókat szeretné megjeleníteni, és ki kell zárnia a Java Auto Updater alkalmazást, akkor használja a következő parancsot:

Get-WmiObject -Class Win32_Product -Filter "Név, mint '% Java%', és nem neve, mint '% Java Auto Updater%'" | Válassza a -Expand Version lehetőséget

PowerShell: Java változat letöltése a távoli számítógépeken

Ha leltárt szeretne készíteni a domain Java számítógépein vagy kiszolgálóin használt verzióiról, használhatja a következő PowerShell szkriptet. Ez a szkript távolról lekérdezheti a kiszolgálót a manuálisan megadott listából, betölti a listát egy szöveges fájlból. A kiszolgálók vagy számítógépek listáját az AD-ről is megszerezheti a Get-ADComputer parancsmag segítségével az RSAT-AD-PowerShell modulból.
# PowerShell szkript a Java SE verzió (JRE) ellenőrzésére a távoli számítógépeken / szerveren

# Ellenőrizze a Java verziót a számítógépek listájából

# $ számítógépek = @ ('sever1, server2, server3')

# Ellenőrizze a Java verziót a szöveges fájl kiszolgálói listája szerint

# $ számítógépek = Get-content C: \ PS \ ServerList.txt

# Java verzió beszerzése az összes domain szerverre

$ számítógépek = ((get-adcomputer -Szűrő engedélyezett -eq "true" -és operációs rendszer -Szerűen * * Windows Server * '). név) .tostring ()

Get-WmiObject -Class Win32_Product -ComputerName $ számítógépek -Szűrő "Név, mint '% Java%', és nem neve, mint '% Java Auto Updater%'" | Válassza a __Server, verzió lehetőséget

Ennek eredményeként megkapja a táblát a számítógépek / szerverek listájával és a rajta található Java verzióval.

Az én esetemben, amikor ellenőriztem a Java verzióját a számítógépeken, a JRE 35 különféle verzióját találtam!

PowerShell szkript a Java összes verziójának eltávolításához

Miért lehet, hogy el kell távolítania a Java korábbi verzióit a Windows rendszeren?

  • A Java új verziójának telepítése előtt tanácsos eltávolítani az összes korábbi verziót. A Java összes többi termékéhez hasonlóan a funkcionalitást folyamatosan frissítik, és a kritikus sérülékenységeket kijavítják. Ha van telepítve a Java régebbi verziója, akkor tegye ki számítógépét a fertőzés kockázatának, valamint az ismert és a 0 napos biztonsági rések kihasználásának. A Java beépített automatikus frissítési mechanizmussal rendelkezik, de különféle okok miatt az adminisztrátorok letilthatják azt a tartományi számítógépeken.
  • Nincs kereskedelmi előfizetése a Java JRE használatához. 2019 óta az Oracle megváltoztatta a Java engedélyezési irányelveit. Most, ha az Oracle JDK (Java SE) régebbi verzióit szeretné használni, fizetett előfizetést kell vásárolnia. Ez vonatkozik a Java JRE összes kiadására 2019. április 16. után (kezdve a Java 8 SE frissítéssel 211). A Java SE kereskedelmi verziói hosszú távú támogatást kapnak (a frissítés 5 évvel a kiadás után jelent meg). Ingyenes Java verzió - Nyissa meg a jdk-t (a GPL keretében terjesztett), azonban hathavonta egyszer frissítenie kell. Egy másik hátrány Nyissa meg a jdk-t - míg a Windowshoz nincsenek szokásos telepítőeszközök. Töltse le és telepítse az Open JDK szoftvert manuálisan. Van egy elfogadható lehetőség az Open JDK telepítéséhez a Chocolatey csomagkezelő segítségével: choco install openjdk

A következő PowerShell szkript használható a Java összes telepített verziójának eltávolítására a számítógépen.

$ jre_installed = Get-WmiObject -Class Win32_Product -Filter "Név, mint a '% Java%' '"
$ jre_installed.Uninstall ()

A fent tárgyalt eltávolítási parancs azonban a WMI-n alapul, és az egyszerűség ellenére meglehetősen lassan működik.

Ehelyett beszerezheti a telepített Java listáját a rendszerleíró adatbázisból, és eltávolíthatja az összes megtalált Java verziót a termék GUID segítségével, amely a szoftver MSI-n keresztüli telepítésekor jön létre..

#PowerShell parancsfájl a Java SE (JRE) összes verziójának eltávolításához a számítógépről
$ uninstall32 = gci "HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall" | foreach gp $ _. PSPath | ? $ _-szerű "* Java *" | válassza az UninstallString lehetőséget
$ uninstall64 = gci "HKLM: \ SZOFTVER \ Microsoft \ Windows \ CurrentVersion \ Uninstall" | foreach gp $ _. PSPath | ? $ _-szerű "* Java *" | válassza az UninstallString lehetőséget
# A Java 64 bites verzióinak eltávolítása
if ($ uninstall64)
$ uninstall64 = $ uninstall64.UninstallString -Csere "msiexec.exe", "" -Csere "/ I", "" -Csere "/ X", ""
$ uninstall64 = $ uninstall64.Trim ()
Írja "Eltávolítás ..."
indítási folyamat "msiexec.exe" -arg "/ X $ uninstall64 / qb" -Vár

# A Java 32 bites verzióinak eltávolítása
if ($ uninstall32)
$ uninstall32 = $ uninstall32.UninstallString -Csere "msiexec.exe", "" -Csere "/ I", "" -Csere "/ X", ""
$ uninstall32 = $ uninstall32.Trim ()
Írja be: "Az összes Java SE verzió eltávolítása ..."
indítási folyamat "msiexec.exe" -arg "/ X $ uninstall32 / qb" -Vár


Az e cikkből származó PowerShell-parancsfájlok a GitHub tárhelyemben találhatók: https://github.com/winadm/posh/tree/master/Java.

Hogyan tölthető le a Java JRE telepítése a PowerShell használatával?

A következő PowerShell-parancsfájl lehetővé teszi a Java-disztribúció legújabb verziójának automatikus letöltését (letölthető offline vagy online telepítőként) a hivatalos webhelyről, és telepíthető a felhasználó számítógépére. Ezzel elnyomjuk az újraindítás követelményét, és kikapcsoljuk az automatikus Java frissítéseket.

A telepítőfájl letöltéséhez a webhelyről használja az Invoke-WebRequest parancsmagot.

#PowerShell parancsfájl a Java SE (JRE) legújabb verziójának automatikus letöltéséhez és telepítéséhez a számítógépre
[Net.ServicePointManager] :: SecurityProtocol = [Net.SecurityProtocolType] :: Tls12
# letöltése online Java telepítő
$ URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % [regex] :: találatok ($ _, '(? :)'). Csoportok [1] .Érték
# letölthető offline Java telepítő
# $ URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % [regex] :: találatok ($ _, '(? :)'). Csoportok [1] .Érték
Invoke-WebRequest -UseBasicParsing -OutFile jre8.exe $ URL
Indítási folyamat. \ Jre8.exe '/ s REBOOT = 0 TÁMOGATÓ = 0 AUTO_UPDATE = 0' - vár
echo $?

Ha a számítógép egy proxy mögött van, be kell állítania a PowerShell szolgáltatást az Internet eléréséhez proxy útján.

A szkript első sorát hozzáadjuk a TLS 1.2 protokollra való váltáshoz. Egyébként, amikor elkezdtem, hibát kaptam:

Invoke-WebRequest: A kérés megszakítva: Nem sikerült létrehozni az SSL / TLS biztonságos csatornát.

A szkript automatikusan letölti a Java telepítőfájlt, elmenti a lemezre jre8.exe néven, és telepíti a JRE fájlt.