powershell -version オプションの意味
PowerShell /? で表示される説明に
-Version
特定のバージョンの Windows PowerShell を起動します。と記載されていますがこれは具体的にどのような効果を持つものなのでしょう。
V2 CTP3 で次のように試してみても何も変化がないように見えます。
V1 にはないCmdLet(New-PSSession とか)も呼び出せるようですし。
PS C:\> powershell -version 1
Windows PowerShell V2 (Community Technology Preview - Features Subject to Change)
Copyright (C) 2008 Microsoft Corporation. All rights reserved.PS C:\> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.3053
BuildVersion 6.1.6949.0
PSVersion 2.0
PSCompatibleVersions {1.0, 2.0}
PS C:\> powershell -version 2
Windows PowerShell V2 (Community Technology Preview - Features Subject to Change)
Copyright (C) 2008 Microsoft Corporation. All rights reserved.PS C:\> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.3053
BuildVersion 6.1.6949.0
PSVersion 2.0
PSCompatibleVersions {1.0, 2.0}
回答
- Connect の方で質問していたら回答をもらえました。
元々はサイドバイサイドで複数バージョンを使い分けられる計画だったそうです。
ヘルプの記述はその名残でしょう。
今は必要な最低のバージョン互換性を指定するという意味になっており、
Version 2ではCTP3後でもこのまま変更はなさそうです。- 回答としてマーク中川 俊輔 2009年4月9日 6:32
PowerShell 1.0ですと
>powershell -version 2.0
Windows PowerShell バージョン 2.0 は正しくインストールされていないため、起動でき
ません。>powershell -version 1.0
Windows PowerShell
Copyright (C) 2006 Microsoft Corporation. All rights reserved.となるので、2.0だとまだ実装されていない機能なのかもしれませんね。
- 回答としてマーク中川 俊輔 2009年4月9日 6:32
すべての返信
PowerShell 1.0ですと
>powershell -version 2.0
Windows PowerShell バージョン 2.0 は正しくインストールされていないため、起動でき
ません。>powershell -version 1.0
Windows PowerShell
Copyright (C) 2006 Microsoft Corporation. All rights reserved.となるので、2.0だとまだ実装されていない機能なのかもしれませんね。
- 回答としてマーク中川 俊輔 2009年4月9日 6:32
PowerShell 2.0 CTP3 でも
PS C:\> powershell -version 3
Cannot start Windows PowerShell version 3 because it is not correctly installed.なので何か実装はしているみたいです。
ご指摘に刺激されて他の動きも試してみるとこうなります。
(おなじくCTP3にて)
PS C:\> powershell -version 3
Cannot start Windows PowerShell version 3 because it is not correctly installed.
PS C:\> powershell -version 3.0
Cannot start Windows PowerShell version 3.0 because it is not correctly installed.
PS C:\> powershell -version 2.1
Cannot start Windows PowerShell. No version of Windows PowerShell compatible to 2.1 is installed.
PS C:\> powershell -version 1.0
Windows PowerShell V2 (Community Technology Preview - Features Subject to Change)
Copyright (C) 2008 Microsoft Corporation. All rights reserved.PS C:\> powershell -version 1.5
Cannot start Windows PowerShell. No version of Windows PowerShell compatible to 1.5 is installed.
PS C:\> powershell -version 1.1
Cannot start Windows PowerShell. No version of Windows PowerShell compatible to 1.1 is installed.
PS C:\> powershell -version 0.9
Cannot start Windows PowerShell version 0.9 because it is not correctly installed.“正しくインストールされていない” と
“互換性のあるバージョンがインストールされていない” とが区別されています。
$PSVersionTable の
PSCompatibleVersions の値と Major 番号との組み合わせ?
どういうつもりのものか推測できるような気がしなくもありませんが、
“特定のバージョンの Windows PowerShell を起動します。”
"Starts the specified version of Windows PowerShell."
という説明で想像される動作とは違うように思われますね。
- Connect の方で質問していたら回答をもらえました。
元々はサイドバイサイドで複数バージョンを使い分けられる計画だったそうです。
ヘルプの記述はその名残でしょう。
今は必要な最低のバージョン互換性を指定するという意味になっており、
Version 2ではCTP3後でもこのまま変更はなさそうです。- 回答としてマーク中川 俊輔 2009年4月9日 6:32
Connect の方で質問していたら回答をもらえました。
元々はサイドバイサイドで複数バージョンを使い分けられる計画だったそうです。
ヘルプの記述はその名残でしょう。
今は必要な最低のバージョン互換性を指定するという意味になっており、
Version 2ではCTP3後でもこのまま変更はなさそうです。
なるほど、そういう背景があったんですね。
勉強になりました。

