Microsoftは、「PowerShell」について、オープンソースエディションの最新リリース「PowerShell Core 6.2」の一般提供を開始した。また、次期リリースの開発計画と、名称が「PowerShell 7」となる理由も明らかにした。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2019年3月28日(米国時間、以下同じ)、WindowsやLinux、macOSで動作する「PowerShell」について、オープンソースエディションの最新リリース「PowerShell Core 6.2」の一般提供を開始した。さらに、4月5日には次期リリースについて、名称を「PowerShell 7」とすることを明らかにし、名称変更の理由と開発計画の概要を説明した。
PowerShell Coreは「Windows PowerShell」と並列して動作する。さらに両者は相互に独立して使用できる。このため、既存のスクリプトのためにWindows PowerShellを使い続け、PowerShell Coreを新たな自動化や新機能の探索に利用するといったことが可能だ。
PowerShell Core 6.2は、パフォーマンスの向上やバグ修正、コマンドレット/言語の小規模な改良に重点が置かれている。2018年9月に「PowerShell Core 6.1」を公開後、PowerShell Core 6.2の公開までに加えられた変更は560件以上に上った。
PowerShell Coreチームによれば、PowerShell Core 6.2の開発期間を通じて、「Azure Functions」でのPowerShell Core 6のサポートや、リリースプロセスの自動化、「PSScriptAnalyzer v1.18.0」のリリース、Visual Studio CodeのPowerShell拡張機能のプレビュー版(2.0.0-Preview)のリリースにも力を入れてきたという。
さらにPowerShell Core 6.2には、多くの実験的な機能も導入されている。「Get-ExperimentalFeature」と入力することで、実行可能な実験的な機能の一覧を表示でき、「Enable/Disable-ExperimentalFeature」を使うことで、いつでも実験的な機能のオン/オフが可能だ。
次の実行例では「Get-Commnd」という誤ったコマンドを入力した結果、最も可能性の高い「Get-Command」から最も可能性の低い「Set-Content」まで複数の候補が表示されている。つまり、コマンド名やコマンドレット名をあいまい一致で検索できる。
PS> Get-Commnd Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + Get-Commnd + ~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module, Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
この他にも、場合によっては300〜750倍の高速化が可能な「暗黙のリモート処理」機能や、WindowsとmacOS、Linuxで同じように一時フォルダを取得できる「Temp Drive」機能、短縮名から長い名称にタブ補完が可能な「略語展開」機能などを追加している。
PowerShell Coreチームは、PowerShell Coreの次期リリースを「PowerShell 7」とする複数の理由を説明している。
PowerShell Coreチームは以上の決定に従って、ドキュメントや製品ページでPowerShellに言及する際に、「Core」を省略し、「PowerShell 7」の呼称を使用する。
PowerShell Coreチームによると、PowerShell Core 6.1により、Windows PowerShellの多くの組み込みモジュールとの互換性が確保できた。PowerShell 7では、「.NET Core 3.0」における変更を利用することで、インボックスWindows PowerShellモジュールとの90%以上の互換性を実現する見込みだ。
また、PowerShell Coreは現在、Microsoftモダンライフサイクルポリシーの対象だが、PowerShell 7は、.NET Coreのサポートライフサイクルとの整合性確保が図られ、LTS(長期サービス)リリースと非LTSリリースが用意される。
PowerShell 7の最初のプレビュー版は2019年5月にリリースされる見込みだ。PowerShell 7の開発は.NET Coreの開発スケジュールと連動しており、.NET Core 3.0の一般提供開始後、一定期間が経過してからPowerShell 7の一般提供が開始される見通しだ。
Copyright © ITmedia, Inc. All Rights Reserved.