ついにPowerShell7がリリースされましたね。めでたい🎉
開発にコントリビュートした方々、GJ部でした。
GAリリースとは別件ですが、Jupyter NotebooksでPowerShellサポートも始まりました。
おかげで音沙汰のなかった「AzureNotebookでPowerShell使えるようにしない?」というissueも動き始めたようです。
というわけでPowerShell Blogの機械翻訳を貼っておきます。
※やっつけ仕事ですみません。。。
GAリリース記事の機械翻訳
ソース:https://devblogs.microsoft.com/powershell/announcing-powershell-7-0/
本日、PowerShell 7.0の一般公開(GA)リリースをお知らせします!何よりも先に、コード、テスト、ドキュメント、および問題のフィードバックを送信してこのリリースを可能にしてくれた多くのオープンソースの貢献者に感謝したいと思います。PowerShell 7は、あなたの助けがなければ不可能だったでしょう。
PowerShell 7とは何ですか?
馴染みのない人にとっては、PowerShell 7は、構造化データ(JSON、CSV、XMLなど)、RESTの処理に最適化されたクロスプラットフォーム(Windows、Linux、macOS)自動化ツールおよび構成フレームワークであるPowerShellの最新のメジャーアップデートですAPI、およびオブジェクトモデル。PowerShellには、コマンドラインシェル、オブジェクト指向スクリプト言語、およびスクリプト/コマンドレットを実行してモジュールを管理するための一連のツールが含まれています。
3年前、PowerShellのまったく新しいエディションとしてPowerShell Core 6を発表しました。.NET Coreの上に構築されたPowerShell Coreは、Windows、macOS、およびLinuxのクロスプラットフォームサポート、SSHベースのPowerShell Remoting、RESTとJSONの大幅に改善されたサポート、公式Dockerコンテナーなどを導入しました。さらに、これはオープンソースライセンス(MIT)の下で行われたPowerShellの最初のリリースであり、長年のPowerShellの愛好家と完全な新参者がソースコード、テスト、ドキュメントに直接貢献することを奨励しました。
PowerShell Coreの3つの成功したリリースの後、PowerShellの進行中の開発の次の章であるPowerShell 7にこれ以上興奮することはありませんでした。PowerShell 7では、通常の多数の新しいコマンドレット/ APIとバグ修正に加えて、次のような多くの新機能が導入されています。
パイプライン並列化 ForEach-Object -Parallel
新しい演算子:
三項演算子: a ? b : c
パイプラインチェーンオペレーター:||および&&
Null合体演算子:??および??=
Get-Errorエラーの調査を容易にするための単純化された動的なエラービューとコマンドレット
ユーザーが暗黙的なWindows PowerShellセッションでモジュールをインポートできるようにする互換性レイヤー
新しいバージョンの自動通知
PowerShell 7から直接DSCリソースを呼び出すために呼び出す機能(実験的)
機能と修正のより完全なリストについては、PowerShell 7.0リリースノートをご覧ください。
PowerShell Core 6.xから7.0への移行も、.NET Core 2.xから3.1への移行を示しています。.NET Core 3.1は、多くの.NET Framework API(特にWindows)を復活させ、既存のWindows PowerShellモジュールとの大幅な後方互換性を実現します。これには、Out-GridViewやなどのGUI機能を必要とするWindows上の多くのモジュールとShow-Command、Windowsの一部として出荷される多くのロール管理モジュールが含まれます。詳細については、PowerShell 7で動作する最新のモジュールをどのように使用できるかを示すモジュール互換性テーブルをご覧ください。
モジュールの互換性の問題のために過去にPowerShell Core 6.xを使用できなかった場合、Coreプロジェクトを開始してから既に提供したいくつかの素晴らしい機能を利用できるのは初めてです!
驚くばかり!PowerShell 7を入手するにはどうすればよいですか?
まず、Windows、macOS、またはLinuxのインストールドキュメントをご覧ください。ご使用のOSのバージョンと優先パッケージ形式に応じて、複数のインストール方法があります。
既に何をしているのかを知っていて、バイナリパッケージ(MSI、ZIP、RPMなど)だけを探している場合は、GitHubの最新リリースタグにアクセスしてください。
さらに、多くのDockerコンテナイメージのいずれかを使用することもできます。これらの使用の詳細については、PowerShell-Dockerリポジトリをご覧ください。
PowerShell 7はどのオペレーティングシステムをサポートしていますか?
PowerShell 7は、x64で次のオペレーティングシステムをサポートしています。
Windows 7、8.1、および10
Windows Server 2008 R2、2012、2012 R2、2016、および2019
macOS 10.13以降
Red Hat Enterprise Linux(RHEL)/ CentOS 7+
Fedora 29+
Debian 9+
Ubuntu 16.04+
openSUSE 15+
Alpine Linux 3.8+
さらに、ARM32およびARM64フレーバーのDebianとUbuntu、およびARM64 Alpine Linuxもサポートしています。
公式にはサポートされていませんが、コミュニティはArchとKali Linuxのパッケージも提供しています。
ここにリストされていないプラットフォームのサポートが必要な場合は、GitHubで配布リクエストを提出してください(ただし、最終的には.NET Core 3.1でサポートされるものによって制限されることに注意してください)。
待ってください、PowerShell「コア」はどうなりましたか?
多くのように、.NETは、.NET 5で行うことを決めた、私たちは私たちの旅のPowerShellの7マーク完了にはWindows PowerShellとの後方互換性を最大化することと感じています。そのために、PowerShell 7以降を真のPowerShellと考えています。
6.x / 7.xとWindows PowerShellを区別するために、PowerShell 7はエディション「Core」で引き続き注目されますが、一般的には「PowerShell 7」と表示されます。
PowerShell 7を既にサポートしているマイクロソフト製品はどれですか?
PowerShell Core 6.xで既にサポートされているモジュールはすべて、PowerShell 7でもサポートされています。
Azure PowerShell(Az.*)
Active Directory
Windows 10およびWindows Serverのモジュールの多く(で確認Get-Module -ListAvailable)
Windowsでは、まだ互換性のないモジュールを使用しているユーザー向けにPowerShell 7への移行を容易-UseWindowsPowerShellにImport-Moduleするためのスイッチも追加しました。このスイッチは、ローカルWindows PowerShellプロセスを使用してそのモジュールに含まれるコマンドレットを暗黙的に実行するPowerShell 7でプロキシモジュールを作成します。この機能の詳細については、Import-Moduleのドキュメントをご覧ください。
これらのモジュールにはまだ互換性がないため、Microsoft GraphやOffice 365など、PowerShell 7のネイティブサポートを追加するために多くのチームと協力しています。
Azure Cloud Shellは既にPowerShell 7を使用するように更新されており、.NET Core SDK DockerコンテナーイメージやAzure Functionsなどのその他のものは間もなく更新されます。
PowerShell 7はMicrosoftによって公式にどのようにサポートされていますか?
PowerShell Coreと同様に、PowerShell 7は、既存のマイクロソフトサポート契約を結んでいる幅広い顧客向けにサポートされている製品です。
PowerShell 7では、サポートライフサイクルに移行し、PowerShellの一部として配布する基礎となる.NETランタイムのライフサイクルを一致させます。これは、PowerShell 7.0は2019年12月3日(.NET Core 3.1のリリース日)から約3年間サポートされる長期サービス(LTS)リリースであることを意味します。
PowerShellのサポートライフサイクルの詳細については、https: //aka.ms/pslifecycleをご覧ください。
PowerShellの次は何ですか?
私たちは既にPowerShell 7.1の開発に取り組んでおり、すぐに最初のプレビューを期待する必要があります。7.0には至らなかった新機能とバグ修正が満載です。7.1の現在の調査と要望をまとめた、より詳細なロードマップブログをお楽しみに。
上記のように、.NETリリースとそのサポートライフサイクル(プレビューがほぼ毎月継続してリリースされる)との整合性を高めるために、年次リリースのリズムに移行しています。
PowerShell 7に関するフィードバックを送信するにはどうすればよいですか?
PowerShell 7に直接関連するほとんどの問題については、メインのPowerShellリポジトリに問題を提出することから始めます。特定のモジュール(PSReadlineやPowerShellGetなど)に関連する問題については、必ず適切なリポジトリにファイルしてください。
再度、感謝します!
このリリースに携わったすべての人に感謝します。複数回の貢献者から、プレビューリリースに追いついているあなた方まで。あなたなしではできなかったでしょう!
Joey Aiello
PM、PowerShell
おまけ:Windows Terminalで日本語入力が使えるようになった
プライベートではWinとmacの両方使ってますが、これでWindowsのQoLが向上します。