Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

Javaランタイム環境(JRE) さまざまなエンタープライズJavaアプリを実行するためにユーザーコンピューターで広く使用されています。ただし、一部のアプリは特定のJavaバージョンを必要とし、他のバージョンでは正しく動作しない場合があります。この記事では、ネットワーク内のコンピューターにインストールされているJavaのバージョンを確認する方法と、PowerShellを使用してJREをアンインストールまたは更新する方法について説明します。

WindowsでJavaのバージョンを確認するには?

javaと入力すると、コンピュータにインストールされているJavaのバージョン番号を取得できます。 Windows 10の検索ボックスで、Javaアプレットを実行します。

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

Javaについて ウィンドウでは、現在のJREバージョンが指定されます。私の場合は、Java Version 8 Update 261 (build 1.8.0_261-b12)です。 。 JREビルドの値に注意してください。すべてのJavaバージョンには1があります 最初にメジャーJREバージョンの数が続きます( 8 私の場合)と更新番号。

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

Windowsのプログラムと機能で現在のJavaバージョンを確認することもできます(Win + R-> appwiz.cpl

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

コマンドプロンプトで現在のJavaバージョンを表示できます。 cmd.exeを実行します 次のコマンドを実行します:

java -version

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) Client VM (build 25.261-b12, mixed mode, sharing)

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

PowerShellを使用してJavaバージョンを確認する

PowerShellを使用して、コンピューターにインストールされているJavaのバージョンを確認できます。実行可能ファイルjava.exeのバージョンを確認するだけです。 (JRE SEがコンピューターにインストールされている場合、そのパスは環境変数に設定されます)。 Javaファイルのバージョンを表示します:

Get-Command Java | Select-Object Version

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

Javaのバージョン、更新、リリース番号に関する詳細情報を表示できます:

Get-Command java | Select-Object -ExpandProperty Version

Major Minor Build Revision
----- ----- ----- --------
8 0 2610 12

スクリプトで使用するJavaバージョンの文字列値を取得する場合は、次のコマンドを使用します。

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

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

また、WMIクラスWin32_Product(Windowsにインストールされているプログラムのリストが含まれています)からJavaのバージョンを確認することもできます。

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

IdentifyingNumber : {26A24AE4-039D-4CA4-87B4-2F32180261F0}
Name : Java 8 Update 261
Vendor : Oracle Corporation
Version : 8.0.2610.12
Caption : Java 8 Update 261

IdentifyingNumber : {4A03706F-666A-4037-7777-5F2748764D10}
Name : Java Auto Updater
Vendor : Oracle Corporation
Version : 2.8.261.12
Caption : Java Auto Updater

IDは、後でJREを正しくアンインストールするために使用される場合があります。

Java Auto UpdaterなしでJavaバージョンのみを表示する場合は、次のコマンドを使用します。

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%' and not Name like '%Java Auto Updater%'" | Select -Expand Versionを選択します

PowerShell –リモートコンピューターのJavaバージョンを確認する

ドメイン内のすべてのコンピューターまたはサーバーでJavaバージョンを使用する場合は、次のPowerShellスクリプトを使用できます。スクリプトは、手動またはテキストファイルから入力したリストに従って、すべてのサーバーからリモートで情報を取得できます。 RSAT-AD-PowerShellモジュールからGet-ADComputerコマンドレットを使用して、AD内のサーバーまたはコンピューターのリストを取得することもできます。
# PowerShell script to check Java SE (JRE) version on remote computers
# To check Java version on the computers in the list
# $computers = @('mun-sql01,mun-fs01,mun-sql02')
# Check Java version against the list of servers in a text file
#$computers=Get-content C:\PS\ServerList.txt
# To get Java version on all Windows Servers in AD domain
$computers = ((get-adcomputer -Filter { enabled -eq “true” -and OperatingSystem -Like ‘*Windows Server*’ }).name).tostring()
Get-WmiObject  -Class Win32_Product -ComputerName $computers -Filter “Name like ‘%Java%’ and not Name like ‘%Java Auto Updater%'” | Select __Server, Version
を選択します

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

その結果、コンピューター/サーバーとそれらにインストールされているJavaバージョンのリストを含むテーブルが作成されます。

私の場合、ドメインコンピュータでJavaバージョンを確認すると、24の異なるJREバージョンが見つかりました!!! すべてのJavaバージョンをアンインストールするPowerShellスクリプト

Windowsで以前のJavaバージョンをアンインストールする必要があるのはなぜですか?

  • 新しいJavaバージョンをインストールする前に、以前のバージョンをすべてアンインストールすることをお勧めします。他の製品と同様に、新しい機能が登場し、重要なエクスプロイトはJavaで常に修正されています。古いバージョンのJavaがインストールされている場合、コンピューターは既知の脆弱性またはゼロデイ脆弱性の感染または悪用の対象になります。 Javaには組み込みの自動更新メカニズムがありますが、さまざまな理由で、管理者がドメインコンピュータでJavaを無効にする場合があります。
  • 有料のJavaJREサブスクリプションはありません。 2019年、OracleはJavaライセンスポリシーを変更しました。以前のOracleJDK(Java SE)バージョンを使用する場合は、有料サブスクリプションを取得する必要があります。これは、2019年4月16日以降のすべてのJava JREリリースを指します(Java 8 SE Update 211から)。
    商用Java SEバージョンは、長期間サポートされています(アップデートはリリース日から5年間リリースされます)。無料のJavaバージョンはOpenJDK (GPLの下で配布されます)が、6か月ごとに更新する必要があります。別のOpenJDK 欠点は、Windows用の便利なインストーラーがないことです。 OpenJDKを手動でダウンロードしてインストールする必要があります。 Chocolateyパッケージマネージャーを使用してOpenJDKをインストールするための優れたオプションがあります:choco install openjdk

次のPowerShellスクリプトを使用して、ローカルコンピューターにインストールされているすべてのJavaバージョンを削除できます。

$jre_installed = Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"
$jre_installed.Uninstall()

ただし、上記のアンインストールコマンドはWMIに基づいており、動作が遅くなります。

代わりに、レジストリからインストールされているJavaバージョンのリストを取得し、MSIを介してソフトウェアをインストールするときに生成される製品GUIDによってすべてをアンインストールできます。

#PowerShell script to uninstall all Java SE (JRE) versions on a computer
$uninstall32 = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -like "*Java*" } | select UninstallString
$uninstall64 = gci "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -like "*Java*" } | select UninstallString
# Uninstall 64-bit Java versions
if ($uninstall64) {
$uninstall64 = $uninstall64.UninstallString -Replace "msiexec.exe", "" -Replace "/I", "" -Replace "/X", ""
$uninstall64 = $uninstall64.Trim()
Write "Uninstalling Java ..."
start-process "msiexec.exe" -arg "/X $uninstall64 /qb" -Wait
}
# Uninstall 32-bit Java versions
if ($uninstall32) {
$uninstall32 = $uninstall32.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
$uninstall32 = $uninstall32.Trim()
Write "Uninstalling all Java SE versions..."
start-process "msiexec.exe" -arg "/X $uninstall32 /qb" -Wait
}

PowerShellを使用してWindowsでJavaバージョンを確認または更新する方法は?

PowerShellを使用してJavaJREをダウンロードしてインストールする方法

次のPowerShellスクリプトは、公式Webサイトから最新バージョンのJavaインストーラーを自動的にダウンロードし、コンピューターにインストールします(オンラインとオフラインの両方のインストーラーをダウンロードできます)。 installコマンドは、再起動要求を抑制し、Javaの自動更新を無効にします。

Webサイトからインストーラーファイルをダウンロードするには、Invoke-WebRequestコマンドレットを使用します。コンピューターがプロキシの背後にある場合は、プロキシサーバーを介してインターネットにアクセスするようにPowerShellを構成します。

# PowerShell script to automatically download and install the latest Java SE (JRE) version
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download an online Java installer
$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % { [regex]::matches($_, '(?:<a title="Download Java software for Windows Online" href=")(.*)(?:">)').Groups[1].Value }
# Download an offline Java installer
#$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % { [regex]::matches($_, '(?:<a title="Download Java software for Windows Offline" href=")(.*)(?:">)').Groups[1].Value }
Invoke-WebRequest -UseBasicParsing -OutFile jre8.exe $URL
Start-Process .\jre8.exe '/s REBOOT=0 SPONSORS=0 AUTO_UPDATE=0' -wait
echo $?

スクリプトの最初の行は、TLS1.2を使用するために追加されました。そうしないと、次のエラーが発生しました:

Invoke-WebRequest: The request was aborted: Could not create SSL/TLS secure channel.

スクリプトは自動的にJavaインストールファイルをダウンロードし、jre8.exeとしてディスクに保存してインストールします。

残念ながら、Oracle WebサイトからJREセットアップファイルを取得するこの方法は、ほんの数週間前に機能しなくなりました。現在、このWebページはいくつかの.jsスクリプトによって生成されています。また、Javaインストーラーへのリンクを取得できません。おそらく、Oracleはこれをすぐに変更するでしょう。


  1. Windows 11 で Powershell を更新する方法

    Windows オペレーティング システムを最新のソフトウェアとセキュリティ更新プログラムで最新の状態に保つことは、コンピューターを維持するために不可欠です。これは、以前のバージョンの Windows よりも安全になるように設計された Windows 11 に特に当てはまります。ただし、セキュリティ上の問題がまったくないわけではありません。また、Windows OS を最新の状態に保つことは、Microsoft から利用可能になった新しい機能にアクセスできることも意味します。 私たちのブログの定期的な読者であれば、ソフトウェアの更新とパッチ適用の重要性をすでにご存知かもしれません。通常、これ

  2. Windows 11 PC の更新方法

    Microsoft は、Windows 11 OS の新機能を継続的にアップグレードしており、できるだけ早くコンピューターを更新するようお客様に促しています。ファイル エクスプローラーのタブ、クイック設定の Bluetooth メニュー オプション、その他多くの機能がすべて最新リリースに含まれています。全体として、Microsoft の最新のデスクトップ オペレーティング システムを使用するのはスリル満点です。そのため、Windows 11 を現在のビルドに更新するかどうかを検討している場合は、そうするための 5 つの簡単な方法のリストをまとめました。ガイドに従って、すべての制限を回避しながら