PowerShell 7.1.0 Preview1がリリースされました
2020年3月26日、「PowerShell 7.1.0 Preview1」がリリースされました。リリース情報
リリースアナウンス:PowerShell 7.1 Team Investments and Preview.1 Releaseリリースノート:v7.1.0-preview.1 Release of PowerShell
deb版PowerShell PreviewがサポートするUbuntuのバージョン
deb版「PowerShell 7.1.0 Preview1」は、以下の「Ubuntu」で利用できます。- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
いずれも64bit版(amd64)が対象です。
「Ubuntu 19.10」など上記以外のバージョンで「PowerShell Preview」を利用したい場合は、Snap版「PowerShell Preview」の利用を検討してください。
PowerShell 7.1
「PowerShell 7.1」では、「PowerShell 7.0」に間に合わなかった新機能や改良が含まれています。.NET 5 Preview 1に対応
「PowerShell 7.1」では、先日リリースされた「.NET 5.0.0 Preview 1」を含んでいます。「.NET 5.0.0 Preview 1」のリリース情報は、以下を参照してください。
リリースサイクルの変更
「PowerShell Core 6.0」から「PowerShell 7」以前、約6ヶ月おきに「PowerShell Core」のリリースを行っていました。「PowerShell 7.0」以降、「.NET(Core)」のリリーススケジュールやサポートポリシーに沿うようになりました。
そのため「PowerShell 7.1」のリリースは、「.NET 5.0」のリリーススケジュールに沿ったリリースプロセスになります。
「.NET 5.0.0」は 2020年の冬(11月)にリリースが予定されており、「PowerShell 7.1」は「.NET 5.0.0」リリース後の1週間あるいは2週間以内のリリースを目標としています。
その後のリリースも「.NET 5」に歩調を合わせたリリースになります。
PowerShell 7.1の目標
以下で挙げたすべての機能が「PowerShell 7.1」に搭載されるとは限りませんが、「PowerShell 7.1」の開発では以下の取り組みが行われています。PowerShellGet 3.0
「PowerShell 7」の開発が始まった時に、「PowerShellGet 3.0」のアナウンスが行われました。「PowerShellGet 3.0」は「PowerShellGet」の完全な作り直しであり、特に以下の点に注力しています。
- UXの改良
- PackageManagementとNugetプロバイダーからの依存脱却による、コードベースの簡素化と保守性の向上
- PowerShellスクリプトからC#への移行による、巨大かつ複雑なコードベースの保守性向上
また「Linux」で使用されている「apt」のような既存の仕組みに似た使い勝手の導入が検討されています。
「PowerShellGet 3.0」は最初は「PowerShell Gallery」から提供される予定ですが、「PowerShell 7.x」に「PowerShellGet 2.0」をサイドバイサイドで含める暫定的な計画も検討されています。
最初のプレビューリリースは、今月末に予定されています。
Secret Management Module
「Secret Management Module」は、機密情報の管理や取得に使用するモジュールです。「Secret Management Module」の開発作業が引き続き行われています。
特に「Linux」のサポートの追加、可能であれば「macOS」のサポート追加、そしてユーザーによるフィードバックの反映作業が行われています。
「Secret Management Module」は、「PowerShell Gallery」から提供されています。
本モジュールは「Windows PowerShell 5.1」と「PowerShell 7」をサポートしており、「PowerShell 7.1」ではデフォルトで本モジュールが含まれるようになる可能性があります。
VSCode-PowerShell・PSEditorServices・PSScriptAnalyzer 2.0
「VSCode-PowerShell」や「PSScriptAnalyzer」に依存する「PSEditorServices」は、「PowerShell」スクリプトを記述する際、リアルタイムでリンティングを行うソフトウェアです。元々「PSScriptAnalyzer」はこのような利用を意図した設計ではなく、ユーザーのコード入力後にラグが発生し、UXに影響を与えています。
パフォーマンスを大幅に向上させるには、「PSScriptAnalyzer」の大幅な修正や作り直しが必要になっています。
PowerShell Jupyter Kernel
すでに「PowerShell」をサポートする既存の「Jupyter Kernel」が提供されていますが、「PowerShell」チームのサポートによる完全なUXを提供するための取り組みが行われています。そして「.Net Interactive Jupyter kernel」の一部となっているPowerShellサブカーネルのプレビューリリースが行われました。
今後も「PowerShell」及び「Jupyter」ユーザーにとって最高の選択肢となるよう、改良が続けられています。
platyPS vNext
「PlatyPS」は、PowerShellドキュメントをマークダウンからアップデート可能なヘルプへ変換するPowerShellモジュールです。フォードバックに基づく改良やドキュメント機能の改良が必要であり、マークダウンの解析やレンダリングなど、書き直しが必要になっています。
PowerShellのインストールとアップデート作業の改善
特に「Windows」では、「PowerShell」のインストールとアップデート作業が煩雑です。もっと簡単に「PowerShell」のインストールとアップデートを行えるようにするオプションが検討されています。
現時点では「PowerShell 7」を「Windows」に同梱する計画はありません。
これはサポートポリシーが異なるためです。
シェルの改良
多くのネイティブコマンドは「PowerShell」から正常に動作しますが、引用符の処理などコマンド引数の解析がうまく動作しないケースがあります。この状況の改善は、ユーザーがサンプルコードを切り取り「PowerShell」に貼り付けても、「PowerShell」固有のエスケープ処理を行わずに動作できるようにする事が目的です。
また「PowerShell」固有の機能とネイティブコマンドを混在させる場合、期待通りに動作しないケースがあります。
例えば「PSDrives」はPowerShellのコマンドレット及びスクリプト内で利用可能です。
これをネイティブコマンドと連携できるような仕組みを検討しています。
対話におけるUXの改善
より生産的にシェルを活用できるよう、以下のシナリオ実現が検討されています。- ユーザーの入力を支援する様々な予測エンジンの導入方法の調査
- 状況に応じたヘルプの表示
- 出力されるテキストを装飾するAPIの導入
PowerShellの最小化
スクリプトを配置する際、スクリプトの動作に必要な「PowerShell」の機能のみを配置できるようにすれば、ディスク使用量の削減や適用するパッチ量の削減、セキュリティーの向上に繋がります。また「PowerShell」に含まれるモノシリックなモジュールを論理モジュールに分割する方針も検討されています。
また必ずしも必要ではない.NETアセンブリーへの依存を減らし、メモリー使用量の削減やパフォーマンスの改善も検討されています。
PowerShell 7.1.0 Preview1へアップデートするには
deb版PowerShell Previewを利用している場合
すでにdeb版「PowerShell Preview」をインストールしているユーザーは、「ソフトウェアの更新」からアップデートできます。Snap版PowerShell Previewを利用している場合
すでにSnap版「PowerShell Preview」をインストールしているユーザーは、アップデートが提供され次第、自動的にアップデートされます。PowerShell Previewをインストールするには
deb版PowerShell Previewをインストールするには
deb版「PowerShell Preview」をインストールする方法は、以下を参照してください。次回以降「ソフトウェアの更新」からアップデートできるようになります。