PowerShell にインストールされているバージョンを確認する
2024-08-18
PowerShell には複数のバージョンが存在します。スクリプトやコマンドレットの動作はバージョンによって異なる場合があります。そのため、スクリプトを実行する環境の PowerShell バージョンを確認することは重要です。
方法
PowerShell でインストールされているバージョンを確認するには、次のコマンドを使用します:
$PSVersionTable
このコマンドを実行すると、PowerShell のバージョンに関する詳細な情報が表示されます。重要な情報としては、PSVersion
プロパティにメジャーバージョンとマイナーバージョンが表示されます。
例
$PSVersionTable | Format-Table PSVersion, PSEdition
このコマンドは、バージョン番号と PowerShell のエディション (Core または Desktop) を表示します。
さらに詳しい情報
PowerShell のバージョンに関する詳細な情報は、次のプロパティでも確認できます:
PSVersion
: PowerShell のメジャーバージョンとマイナーバージョンPSEdition
: PowerShell のエディション (Core または Desktop)PSCompatibleVersions
: PowerShell と互換性のあるバージョンBuildVersion
: PowerShell のビルド番号
注意点
- PowerShell 7 以降は、Windows PowerShell とは異なるインストール場所を持ちます。
- PowerShell Core は、複数のバージョンが同時にインストールされている場合もあります。
訳注
- 「コマンドレット」は PowerShell のコマンドの基本単位です。
- 「自動変数」は PowerShell で自動的に作成される変数で、
$PSVersionTable
はその一例です。
PowerShell バージョン確認のコード例
コード例 1: 基本的なバージョン情報取得
$PSVersionTable
- 説明: このコマンドは、PowerShell のバージョンに関する詳細な情報を表示します。
- 出力例:
Name Value
---- -----
PSVersion 7.3.1
PSEdition Core
PSCompatibleVersions {7.3.1}
BuildVersion 17763.1973
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
コード例 2: 特定の情報抽出
Write-Host "PowerShell バージョン: $($PSVersionTable.PSVersion)"
Write-Host "PowerShell エディション: $($PSVersionTable.PSEdition)"
- 説明: このコードは、バージョン番号とエディションのみを抽出して表示します。
PowerShell バージョン: 7.3.1
PowerShell エディション: Core
コード例 3: 条件分岐によるバージョンチェック
if ($PSVersionTable.PSVersion.Major -ge 7) {
Write-Host "PowerShell 7 以上です"
} else {
Write-Host "PowerShell 7 未満です"
}
- 説明: このコードは、PowerShell のメジャーバージョンが 7 以上かどうかをチェックし、それに応じてメッセージを表示します。
コード例 4: カスタムオブジェクトの作成
$psInfo = [PSCustomObject]@{
Version = $PSVersionTable.PSVersion
Edition = $PSVersionTable.PSEdition
Build = $PSVersionTable.BuildVersion
}
$psInfo
- 説明: このコードは、バージョン情報を含むカスタムオブジェクトを作成し、その内容を表示します。
コード例 5: 出力のフォーマット指定
$PSVersionTable | Format-Table PSVersion, PSEdition, BuildVersion
- 説明: このコードは、バージョン情報を出力するためのフォーマットを指定します。
代替方法
レジストリを利用した確認
- 原理: PowerShell のインストール情報はレジストリに保存されています。
- 方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShell
キーの下にバージョン情報が存在します。PSVersion
やBuildNumber
などの値を取得できます。
- 注意: レジストリ操作は慎重に行う必要があります。誤った操作はシステムに影響を与える可能性があります。
WMI (Windows Management Instrumentation) を利用した確認
- 原理: WMI は Windows システムの管理情報を提供するインターフェースです。
- 方法:
Win32_Product
クラスを使用して、PowerShell の製品情報を取得できます。Name
プロパティが "Microsoft PowerShell" である製品のバージョン情報を取得します。
- 注意: WMI 操作も慎重に行う必要があります。
PowerShellGet モジュールを利用した確認
- 原理: PowerShellGet モジュールは PowerShell パッケージの管理に使用されます。
- 方法:
Get-InstalledModule
コマンドレットを使用して、インストールされている PowerShell モジュールの一覧を取得します。- "PowerShell" という名前のモジュールのバージョンを確認します。
- 注意: PowerShellGet モジュールがインストールされている必要があります。
コード例 (レジストリ)
$psVersionKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShell"
$psVersion = (Get-ItemProperty $psVersionKey).PSVersion
Write-Host "PowerShell バージョン: $psVersion"
コード例 (WMI)
$psProduct = Get-WmiObject Win32_Product | Where-Object {$_.Name -eq "Microsoft PowerShell"}
Write-Host "PowerShell バージョン: $($psProduct.Version)"
コード例 (PowerShellGet)
$psModule = Get-InstalledModule PowerShell
Write-Host "PowerShell バージョン: $($psModule.Version)"
どの方法を選ぶか
- 一般的に:
$PSVersionTable
が最も簡単で推奨されます。 - レジストリや WMI: 特殊な状況や詳細な情報が必要な場合に使用できますが、複雑さとリスクがあります。
- PowerShellGet: PowerShell のバージョン確認というよりは、インストールされている PowerShell モジュールの確認に適しています。
powershell version