Microsoft、「PowerShell Core 6.2」を公開、次期リリースは「PowerShell 7」に2種類の「PowerShell」を統合

Microsoftは、「PowerShell」について、オープンソースエディションの最新リリース「PowerShell Core 6.2」の一般提供を開始した。また、次期リリースの開発計画と、名称が「PowerShell 7」となる理由も明らかにした。

» 2019年04月10日 11時30分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 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」機能、短縮名から長い名称にタブ補完が可能な「略語展開」機能などを追加している。

なぜ名称から「Core」を取り除くのか

 PowerShell Coreチームは、PowerShell Coreの次期リリースを「PowerShell 7」とする複数の理由を説明している。

  • PowerShell Coreの利用がこの2年間で大幅に伸びている 伸びの大部分にはLinux上での利用増加が貢献している。下図は、テレメトリーデータによるpwsh.exe(LinuxとmacOS上ではpwsh)の起動回数を示しており、Linux(オレンジ色)の勢いが著しいことが分かる
PowerShell Coreの利用者の伸びをOSごとに示した(出典:GitHub
  • Windows上でのPowerShell Coreの利用はあまり伸びていない これは、Windows PowerShellユーザーが、PowerShell Coreと互換性のない既存の自動化スクリプト(PowerShell Coreでサポートされていないモジュール、アセンブリ、APIを使っている)を使用しているためだと考えられる。こうしたユーザーは、PowerShell Coreにおける新機能やパフォーマンス向上、バグ修正の恩恵を受けられない
  • Windows PowerShellの置き換えで対応 この問題に対処するため、PowerShell Core開発チームはPowerShell Coreの次期リリースを、Windows PowerShell 5.1を完全に置き換えるものとして開発することに決めた
  • PowerShellの一本化 これにより、Windows PowerShellユーザーとPowerShell CoreユーザーがPowerShellの同じバージョンを使って、WindowsやLinux、macOSにわたって、自動化を実現できるようになり、PowerShell 7ユーザーは、Windows PowerShellモジュールとの非常に高い互換性を享受できるようになる

 PowerShell Coreチームは以上の決定に従って、ドキュメントや製品ページでPowerShellに言及する際に、「Core」を省略し、「PowerShell 7」の呼称を使用する。

6.1で互換性の糸口を付けた

 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.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。