コンピューターにインストールされている PowerShell のバージョンを確認する

コンピューターにインストールされている PowerShell のバージョンを確認する
コンピューターにインストールされている PowerShell のバージョンを確認する

PowerShell バージョンの識別の概要

タスクの自動化と構成管理のフレームワークである PowerShell は、システム管理者とパワー ユーザーにとって不可欠なツールです。バージョンが異なれば提供される機能も異なるため、その可能性を最大限に活用するには、コンピューターにどのバージョンがインストールされているかを知ることが重要です。

この記事では、システムにインストールされている PowerShell のバージョンを確認し、最新の機能にアクセスしたり、互換性の問題をトラブルシューティングしたりできるようにするための手順を説明します。 PowerShell を初めて使用する場合でも、経験豊富なユーザーでも、現在のバージョンを理解することが効果的に使用するための第一歩です。

指示 説明
Get-Command コマンドレット、関数、ワークフロー、エイリアス、実行可能ファイルなど、システムにインストールされているすべてのコマンドを取得します。
$PSVersionTable PowerShell の現在のバージョンを表示する PowerShell の組み込み変数。
subprocess.run サブプロセスで指定されたコマンドを実行し、その出力をキャプチャして Python でさらに処理します。
re.search Python で指定された正規表現パターンを使用して、一致する文字列を検索します。
command -v 指定されたコマンドがシステム上で利用可能かどうかを確認します。Bash スクリプトでよく使用されます。
pwsh コマンド ラインまたはスクリプトで PowerShell Core を呼び出します。
wine Unix のようなオペレーティング システム上で Windows アプリケーションを実行します。ここでは Wine 経由で Wi​​ndows PowerShell を実行するために使用されます。

インストールされている PowerShell のバージョンを判断するためのスクリプトの仕組み

PowerShell スクリプトは、 Get-Command コマンドレットを使用して、PowerShell がシステムにインストールされているかどうかを確認します。両方をチェックします pwsh (PowerShell コア) および powershell (Windows PowerShell)。いずれかのコマンドが見つかった場合は、ファイルからバージョン情報を取得します。 $PSVersionTable.PSVersion 変数を使用してバージョンを出力します。どちらのコマンドも見つからない場合は、PowerShell がインストールされていないことが出力されます。このアプローチにより、PowerShell の両方のバージョンとの互換性が確保され、異なる設定を持つユーザーにとって包括的なソリューションになります。

Python スクリプトでは、 subprocess.run PowerShell コマンドを実行し、その出力をキャプチャする関数。最初にコマンドを実行しようとします 'powershell -Command $PSVersionTable.PSVersion' Windows PowerShell を確認します。これが失敗した場合は、次の試みが行われます 'pwsh -Command $PSVersionTable.PSVersion' PowerShell コアの場合。の re.search 関数は、正規表現を使用してコマンド出力からバージョン番号を抽出するために使用されます。このスクリプトは、Python と PowerShell の両方が使用できるクロスプラットフォーム環境で特に役立ちます。

Bash スクリプトは、次のコマンドを使用して PowerShell Core がインストールされているかどうかを確認することから始まります。 command -v pwsh 指示。見つかった場合はコマンドを実行します pwsh -Command '$PSVersionTable.PSVersion.ToString()' バージョンを取得します。 PowerShell Core が見つからない場合は、次のコマンドを使用して Wine 経由で Wi​​ndows PowerShell を確認します。 command -v wine そして実行します wine powershell.exe -Command '$PSVersionTable.PSVersion' 可能な場合は。このスクリプトは、ユーザーが PowerShell Core を持っているか、Wine を使用して Windows PowerShell を実行している可能性がある Unix 系システムに役立ちます。

全体として、これらのスクリプトは、さまざまなオペレーティング システムや環境にわたってインストールされている PowerShell のバージョンを確認するための強力なツール セットを提供します。彼らは次のような特定のコマンドを活用します Get-Commandsubprocess.run、 そして command -v システム管理タスクにおけるスクリプトの柔軟性と能力を実証し、目標を達成します。

PowerShell スクリプトを使用した、インストールされている PowerShell のバージョンの特定

PowerShell スクリプト

# Check if PowerShell is installed and determine its version
if (Get-Command -Name pwsh -ErrorAction SilentlyContinue) {
    $version = $PSVersionTable.PSVersion
    Write-Output "PowerShell Core is installed. Version: $version"
} elseif (Get-Command -Name powershell -ErrorAction SilentlyContinue) {
    $version = $PSVersionTable.PSVersion
    Write-Output "Windows PowerShell is installed. Version: $version"
} else {
    Write-Output "PowerShell is not installed on this system."
}

Python スクリプトを使用してインストールされている PowerShell バージョンを確認する

Python スクリプト

import subprocess
import re

def check_powershell_version():
    try:
        result = subprocess.run(['powershell', '-Command', '$PSVersionTable.PSVersion'],
                                capture_output=True, text=True)
        version = re.search(r'(\d+\.\d+\.\d+\.\d+)', result.stdout)
        if version:
            print(f"Windows PowerShell is installed. Version: {version.group(1)}")
        else:
            result = subprocess.run(['pwsh', '-Command', '$PSVersionTable.PSVersion'],
                                    capture_output=True, text=True)
            version = re.search(r'(\d+\.\d+\.\d+\.\d+)', result.stdout)
            if version:
                print(f"PowerShell Core is installed. Version: {version.group(1)}")
            else:
                print("PowerShell is not installed on this system.")
    except FileNotFoundError:
        print("PowerShell is not installed on this system.")

check_powershell_version()

Bash スクリプトを使用してコンピューター上の PowerShell バージョンを確認する

Bash スクリプト

#!/bin/bash

# Check if PowerShell Core is installed
if command -v pwsh &> /dev/null
then
    version=$(pwsh -Command '$PSVersionTable.PSVersion.ToString()')
    echo "PowerShell Core is installed. Version: $version"
else
    # Check if Windows PowerShell is installed via Wine
    if command -v wine &> /dev/null && wine powershell.exe -Command '$PSVersionTable.PSVersion' &> /dev/null
    then
        version=$(wine powershell.exe -Command '$PSVersionTable.PSVersion.ToString()')
        echo "Windows PowerShell is installed via Wine. Version: $version"
    else
        echo "PowerShell is not installed on this system."
    fi
fi

PowerShell のバージョンを確認するための追加の方法を検討する

インストールされている PowerShell のバージョンを確認するもう 1 つの便利な方法は、特に Windows システムでレジストリを確認することです。レジストリは、インストールされている Windows PowerShell のバージョンを識別する直接的な方法を提供します。特定のレジストリ キーをクエリして、この情報を見つけることができます。たとえば、キー HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine にアクセスしてバージョン番号を取得できます。この方法は、スクリプトまたはグループ ポリシーを使用してネットワーク内の複数のマシンにわたるプロセスを自動化する必要がある場合に特に便利です。

macOS および Linux ユーザーの場合は、パッケージ マネージャーを使用する別のアプローチもあります。たとえば、次のように使用できます brew info powershell macOS では、インストールされているバージョンを確認します。 Linux では、次のように使用できます。 apt show powershell または rpm -qi powershell ディストリビューションに応じて。これらのパッケージ マネージャー コマンドは、インストールされているバージョンに関する詳細情報を提供します。これは、さまざまな環境を管理するシステム管理者にとって非常に重要です。この方法により、スクリプトおよびモジュールと互換性のある正しい PowerShell バージョンが確実に得られます。

PowerShell バージョンの決定に関する一般的な質問と回答

  1. スクリプトで PowerShell のバージョンを確認するにはどうすればよいですか?
  2. 使用 $PSVersionTable.PSVersion PowerShell スクリプトでコマンドを使用してバージョンを確認します。
  3. Windows のコマンドラインから PowerShell のバージョンを確認する方法はありますか?
  4. はい、コマンド プロンプトを開いて次のように入力します。 powershell -Command "$PSVersionTable.PSVersion" バージョンを確認します。
  5. Linux で PowerShell のバージョンを確認できますか?
  6. はい、使用できます pwsh -Command "$PSVersionTable.PSVersion" または、次のようなコマンドを使用してパッケージマネージャー情報を確認します。 apt show powershell
  7. PowerShell Core のバージョンを確認するにはどうすればよいですか?
  8. コマンドを実行します pwsh -Command "$PSVersionTable.PSVersion" あなたの端末で。
  9. Windows PowerShell と PowerShell Core の違いは何ですか?
  10. Windows PowerShell は .NET Framework 上に構築されており Windows 専用ですが、PowerShell Core はクロスプラットフォームで .NET Core 上に構築されています。
  11. Windows PowerShell と PowerShell Core の両方をインストールできますか?
  12. はい、両方を同じシステムにインストールして、独立して使用できます。
  13. 複数のマシン上で PowerShell バージョンのチェックを自動化するにはどうすればよいですか?
  14. を活用するスクリプトを使用する Invoke-Command PowerShell Remoting を介してリモート マシンでバージョン チェックを実行します。
  15. PowerShell を最新バージョンに更新する必要がありますか?
  16. 必ずしも必要というわけではありませんが、更新すると最新の機能にアクセスでき、セキュリティが向上します。

PowerShell のバージョンを確認する方法のまとめ

PowerShell の機能を最大限に活用するには、インストールされている PowerShell のバージョンを確認することが不可欠です。 PowerShell スクリプトを使用すると、管理者は PowerShell Core または Windows PowerShell がインストールされているかどうかをすばやく確認し、バージョン番号を取得できます。 Python および Bash スクリプトはクロスプラットフォーム ソリューションを提供し、subprocess.run や command -v などのコマンドを使用してインストール ステータスとバージョンを確認します。さらに、Windows でレジストリをクエリするか、macOS および Linux でパッケージ マネージャーを使用すると、正しいバージョンで作業していることを確認するための代替方法が提供され、システム管理とスクリプトの互換性が向上します。