簡易実験場

徒然なるままに

.NET Framework3.5を利用したらWindowsPowerShell 2.0が勝手に利用されるようになっていたので調べた

Windowsの役割と機能から.NET Framework3.5を選択したら、いつの間にかWindowsPowerShell 2.0が入っているんですよね。

なんで?ということで調べました。

 

そもそもWindowsPowerShell2.0とは
Windows PowerShell 2.0 エンジン
Windows PowerShell 2.0 エンジンは、既存のスクリプトまたはホスト プログラムが Windows PowerShell 5.1 との互換性がないために実行できない場合に限り使用することが意図されています。 
Windows PowerShell2.0がWindows10 Fall CreatorsUpdateで非推奨になることを発表しました。(2017/8/24)

⇒現在はいらない子になっている。

 

Windows PowerShell 2.0 エンジンの最小要件は Microsoft .NET Framework 2.0.50727 です。 この要件は Microsoft .NET Framework 3.5 Service Pack 1 で満たされています。
Microsoft .NET Framework 4 以降のリリースの Microsoft .NET Framework では、この要件が満たされません。

⇒ただ、一部の機能ではまだ需要がある。

 

バージョンの構成と.NETとの依存性を調べてみた。以下の通り。

 

Windows PowerShellの構成
WindowsPowershell 5.1->WindowsPowershell 4.0+3.0(2.0エンジン組み込みなし)+α
WindowsPowershell 4.0->WindowsPowershell 3.0+2.0エンジン+α
WindowsPowershell 3.0->WindowsPowershell 2.0エンジン+α


PowerShellと.NETの関係性
PowerShellバージョン      .NET
Windows PoweShell 1.0    .NET Framework 2.0
Windows PoweShell 2.0    .NET Framework 3.5 ※GUI操作の場合
Windows PoweShell 3.0    .NET Framework 4
Windows PoweShell 4.0    .NET Framework 4.5
Windows PoweShell 5.0    .NET Framework 4.5
Windows PoweShell 5.1    .NET Framework 4.5

 

つまり.NET Framework 3.5を動作させるにはWindows PoweShell 2.0が必要ですが、Windows PoweShell 5.1にはWindows PoweShell 2.0が入っていないので、.NET Framework 3.5を利用すれば自動的に個別でWindows PoweShell 2.0が利用するようになっているのですね。

Windows PowerShell 5.1は5.0のマイナーバージョンが上がっているだけなので5.0と大した違いはありません。

~蛇足~

Windows 8.1Windows 8 では、Windows PowerShell 2.0 エンジンの機能が既定でオンになっています。
ただし、この機能を使うには、この機能に必要な Microsoft .NET Framework 3.5 オプションをオンにする必要があります。

 

■まとめ
⇒Windows PowerShell2.0と.NET Framework3.5の間にはただならぬ関係性がある。