ニュース

Microsoft、「PowerShell」のロードマップを公開 ~クロスプラットフォーム版へ一本化

今年の終わりまでに「PowerShell Core 6.0」を投入する考え

公式ブログ“PowerShell Team Blog”

 米Microsoft Corporationは14日(現地時間)、公式ブログ“PowerShell Team Blog”で、「PowerShell 6.0」のロードマップを明らかにした。

 同社によると、現在の「PowerShell」には2つのエディションが存在する。

 1つ目はお馴染みの「Windows PowerShell」で、これは「.NET Framework」に強く依存しているため、Windowsでしか動作しない。現在、v1.0、v2.0、v3.0、v4.0、v5.0およびv5.1がリリースされている。

 2つ目は「.NET Core」の上に構築された「PowerShell Core」で、Windows、MacおよびLinuxで利用できる。

 クロスプラットフォームで動作する「.NET Core」と、Windowsでのみ動作する「.NET Framework」の間には直接の互換性はないが、「.NET Standard 2.0」(netstandard.dll)と呼ばれる技術を導入することで、バイナリ互換性を確保することが可能。つまり、「Windows PowerShell」向けのモジュールの多くは、そのまま「PowerShell Core」でも利用できるものと見られる。

「.NET Core」と「.NET Framework」、「.NET Standard」の関係(同社の公式ドキュメントより引用)

 そのため、同社は次期バージョン「PowerShell 6.0」を「PowerShell Core」ベースへ集約することを考えているようだ。「Windows PowerShell 6.0」をリリースする予定はない。既存の「Windows PowerShell 5.1」は今後もサポートされるが、大きな機能追加や優先度の低い不具合の修正は行われない可能性がある。

 ただし、「PowerShell Core 6.0」への移行がスムーズに進むかは、モジュールの互換性検証を待つ必要がある。既存の「Windows PowerShell」モジュールを「PowerShell Core」へ移植する方法や、「Windows PowerShell」と「PowerShell Core」の両方をターゲットとした新しいモジュールの開発手法についても整備が必要となるだろう。同社は年内にも実稼働環境への投入が可能なレベルの「PowerShell Core 6.0」を出荷したい考えだが、そのためにも「PowerShell Core 6.0」で既存のスクリプトやコマンドレットが動作するかどうかを確認し、不具合があればフィードバックを寄せてほしいとしている。