PowerShell バージョンを取得する

Migel Hewage Nimesha 2023年1月30日
  1. $PSVersionTable.PSVersion プロパティを使用して PowerShell バージョンを取得する
  2. (Get-Host).Version プロパティを使用して PowerShell バージョンを取得する
  3. $host.Version プロパティを使用して PowerShell バージョンを取得する
  4. レジストリを使用して PowerShell バージョンを取得する
PowerShell バージョンを取得する

PowerShell は、より複雑なコマンドプロンプトの一種です。多数の準備されたコマンドレットと、さまざまなシナリオで.NET Framework / C# を活用する機能が付属しています。PowerShell ISE は、Windows でスクリプトをデバッグおよび編集するためのグラフィカルユーザーインターフェイスです。PowerShell では、同じことをさまざまな方法で実行できます。したがって、主に、PowerShell のバージョンを取得する方法は 4つあり、それらを以下に示します。

$PSVersionTable.PSVersion プロパティを使用して PowerShell バージョンを取得する

したがって、最初に調べているメソッドは、自動変数 $PSVersionTable の PSVersion 属性です。ここでは、PowerShell エンジンを表しています。

PS52> $PSVersionTable.PSVersion

出力:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

$PSVersionTable は、PoweShell エンジンのバージョンと PSEdition に関する情報を提供する読み取り専用のハッシュテーブルです。このパラメーターはデスクトップまたはコアのいずれかであり、使用している PowerShell エディションに関する追加情報を提供します。

自動化された変数 $PSVersionTable は、リモートと同じくらいローカルで正確です。以下の例では、$ PSVersionTable を囲んでいます。スクリプトブロック内の PSVersion をリモートマシンで実行すると、同じバージョンが返されます。

PS> Invoke-Command -ComputerName 11.0.0.3 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred

出力:

$PSVersionTable.PSVersion プロパティを使用して PowerShell バージョンを取得します

(Get-Host).Version プロパティを使用して PowerShell バージョンを取得する

ホストの概念は PowerShell で使用されます。問題を引き起こしているのは PowerShell エンジンではありません。PowerShell ホストは、ターミナルが組み込まれた PowerShell コードエディター/コンソールです。ホストは、PowerShell の完全に自己完結型のエディションを持つことができます。

(Get-Host).Version を使用すると、PowerShell のバージョンと同様のバージョン番号が出力されます。

PS52> (Get-Host).Version

出力:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

ただし、組み込み端末の Get-Host のバージョンは必ずしも同じではありません。ホストは通常​​、PowerShell エンジンのまったく同じエディションを表しますが、常にそうであるとは限りません。Get-Host がローカルコンピューターで呼び出されると、常に同じバージョンが返されますが、リモートシステムでは返されません。

したがって、すべてに Get-Host を使用するのはひどい考えです。

$host.Version プロパティを使用して PowerShell バージョンを取得する

.$host.Version は、PowerShell エンジンのバージョンを取得するためのもう 1つの方法です。Get-Host は、完全に自動化された変数である$ host 変数と同じ結果を提供します。

PS52> $host.Version

出力:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

これは、Get-host メソッドと非常によく似ています。

レジストリを使用して PowerShell バージョンを取得する

PowerShell の起動に熱心でない場合にのみ、レジストリを確認することもできます。PowerShell のエディションは、次のようにレジストリキーパスに保存されます HKLM:\SOFTWARE\Microsoft\PowerShell\3\また値として。Get-ItemProperty を使用して、このレジストリエントリの PowerShellVersion 値を参照できます。

PS51> (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion

出力:

5.1.19041.1
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.