マイクロソフト、「PowerShell 7」を発表--5月にプレビュー版を公開へ

Microsoftは米国時間4月5日、「PowerShell」の新たなバージョンを発表した。同社は2016年に「Linux」および「macOS」向けのPowerShellをオープンソース化し、2018年1月には「PowerShell Core 6.0」を、2019年3月には「PowerShell Core 6.2」をリリースしている。なお、今回発表された名称は「PowerShell Core 6.3」ではなく「PowerShell 7」となっている。

同社は、PowerShell 7のリリースによって「Windows PowerShell 5.1」を「完全に置き換え」ようとしている。2016年にリリースされたWindows PowerShell 5.1は、「Windows」のみに対応する最後のバージョンであり、「.NET Core」をベースにした「PowerShell Core」とは異なり、「.NET Framework」をベースにしている。

PowerShellは人気プログラミング言語の指標「TIOBE Index」で3月に初めてトップ50入りを果たし、45位につけた。その主な理由として、Linuxユーザーの間での人気の高まりが挙げられる。

しかし、Windowsユーザーの間でのPowerShell Coreの人気は横ばいであり、およそ1100万回におよぶPowerShellコマンドの起動回数(テレメトリが無効化されている場合を除いた統計値)のうち、Windows環境から起動されたものの割合は20%にも満たない。

Microsoftは、Windows環境での利用をさらに推し進めるという目標の下、「Windows PowerShell 5.1を完全に置き換える」ためのリリースを計画している。PowerShell 7により、Windows PowerShellを使用していたユーザーと、他のプラットフォーム上でPowerShell Coreを使用していたユーザーは、同一の機能を利用できるようになる。

さらにPowerShell 7によって、現時点におけるWindows PowerShellのモジュールとの「極めて高い互換性」がユーザーにもたらされるという。

PowerShellの主席エンジニアであるSteve Lee氏は、「『PowerShell Core 6.1』により、Windows PowerShellの多くの組み込みモジュールとの互換性がもたらされた。またわれわれは、『.NET Core 3.0』における変更として、.NET Framework上で構築されたモジュールが必要とする多くのAPIを再び.NET Coreランタイムと連携できるようにしたことで、PowerShell 7においてWindows PowerShellのインボックスモジュールとの互換性を90%以上確保できると見込んでいる」と説明した。

またMicrosoftは、PowerShell 7のドキュメントから「Core」という語を無くそうとしている。さらにPowerShell 7では、.NET Coreのサポートライフサイクルと歩調を合わせ、長期サポート(LTS)リリースと非LTSリリースの双方が用意されるようになる。

PowerShell 7のプレビュー版は、5月にユーザーに向けてリリースされる見込みだが、PowerShellと.NET Core 3.0の統合の進捗具合によって実際の日付は変わってくる。Microsoftによると、.NET Core 3.0の一般提供を開始した後で、PowerShell 7の一般提供を開始することになるという。

PowerShell 7は最終的にWindows PowerShell 5.1とともにWindowsに標準搭載されることになるが、「Windows 10」や「Windows Server」のどのバージョンからそれが実現されるのかはまだ明らかにされていない。