バージョンの確認方法
Windows 10 / 11 には標準で Windows PowerShell 5.1 がインストールされていますが、実はもうPowerShell 5.1 は新機能追加は行われておらず、今後は PowerShell 7 系の利用が推奨されています。個人的にも7系の優位性は感じているので、私は両方ともインストールし適宜使い分けしています。以下の通り、バージョンによって実行ファイル名が異なるので「Win+r」(ファイル名を指定して実行)で起動の切り分けをして使っています。
バージョンと実行ファイル名の関係
- PowerShell (5.1) →
powershell.exe
- PowerShell 6以降 → pwsh.exe
$PSVersionTable
これは余談ですがVersion 5.xは.NET Frameworkで動作する事に対し、Version7.1以降は.NET Core/.NET 5/6/7上で動作します。Version7のほうが大量データでのループ処理など高速だと感じますし、Version 5.1xは-Debugオプションが「使えない」です。
確認例(Powershell 5.1xの場合)
PS D:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.1682
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1682
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS D:\>
確認例(Powershell 7.xの場合)
PS D:\work\temp> $PSVersionTable
Name Value
---- -----
PSVersion 7.2.7
PSEdition Core
GitCommitId 7.2.7
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
PS D:\work\temp>
-- つい先日、非LTSだけれどPowerShell7.3がリリースされたと偶然知ったのでzip版を落として
-- 動作させてみました。(zip版は解凍するだけなのでお手軽です)
-- 以下のサイトを見る限り2023年に次LTSリリースの7.4が出るようですね。
--
-- https://devblogs.microsoft.com/powershell/powershell-7-3-general-availability/
PS C:\tools\powershell73> $PSVersionTable
Name Value
---- -----
PSVersion 7.3.0
PSEdition Core
GitCommitId 7.3.0
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
PS C:\tools\powershell73>