PowerShell 7.2 の新機能

PowerShell 7.2 は、次の長期サービス (LTS) リリースであり、.NET 6.0 が基になっています。

PowerShell 7.2 には、次の機能、更新、破壊的変更が含まれています。

  • サポートされているほとんどの Linux ディストリビューション用の新しいユニバーサル インストーラー パッケージ
  • Windows での Microsoft Update のサポート
  • 2 つの新しい実験的機能
    • ネイティブ コマンドの引数の受け渡しのサポートの向上
    • ANSI FileInfo の色のサポート
  • タブ補完の強化
  • 予測 IntelliSense での PSReadLine 2.1
  • メインストリームに昇格された 7 つの実験的機能と、削除された 1 つの機能
  • 将来の機能強化を可能にするための、PowerShell 7 からの DSC の分離
  • 使いやすさ向上のためのいくつかの破壊的変更

詳細な変更一覧については、GitHub リポジトリの変更ログを参照してください。

インストール更新プログラム

任意のオペレーティング システムのインストール手順を確認してください。

さらに、PowerShell 7.2 では、Windows と macOS の ARM64 バージョン、および Debian と Ubuntu の ARM32 と ARM64 バージョンもサポートされています。

サポートされているオペレーティング システムとサポート ライフサイクルの最新情報については、「PowerShell のサポート ライフサイクル」を参照してください。

Linux ディストリビューション用の新しいユニバーサル インストール パッケージ

これまでは、CentOS、RHEL、Debian、Ubuntu のサポート対象バージョンごとに、個別のインストーラー パッケージが作成されていました。 ユニバーサル インストーラー パッケージによって 8 つの異なるパッケージが 1 つにまとめられ、Linux でのインストールが簡単になります。 ユニバーサル パッケージを使用すると、ターゲット ディストリビューションに必要な依存関係がインストールされて、PowerShell を機能させるためのプラットフォーム固有の変更が作成されます。

Windows での Microsoft Update のサポート

PowerShell 7.2 では、Microsoft Update のサポートが追加されます。 この機能を有効にすると、従来の Windows Update (WU) の管理フローで、PowerShell 7 の最新の更新プログラムが提供されます。これは、Windows Update for Business、WSUS、SCCM、または設定の対話型 WU ダイアログのいずれでも同じです。

PowerShell 7.2 の MSI パッケージには、次のコマンド ライン オプションが含まれています。

  • USE_MU - このプロパティには、次の 2 つの有効値があります。
    • 1 (既定値) - Microsoft Update または WSUS による更新にオプトインします
    • 0 - Microsoft Update または WSUS による更新にオプトインしません
  • ENABLE_MU
    • 1 (既定値) - Windows Update の使用にオプトインします (自動更新または Microsoft Update)
    • 0 - Windows Update の使用にオプトインしません (自動更新または Microsoft Update)

試験的な機能

このリリースでは、次の試験的機能がメインストリーム機能になりました。

このリリースでは、次の実験的な機能が追加されました。

  • PSNativeCommandArgumentPassing - この実験的な機能を有効にすると、ネイティブの実行可能ファイルを呼び出すとき、PowerShell により、文字列を再構築する現在の機構ではなく、StartProcessInfo オブジェクトの ArgumentList プロパティが使用されます。 この機能によって、実行時に動作を選択できる新しい自動変数 $PSNativeCommandArgumentPassing が追加されます。

  • PSAnsiRenderingFileInfo - ファイル情報の ANSI 色のカスタマイズを許可します。

  • PSLoadAssemblyFromNativeCode - ネイティブ コードからのアセンブリの読み込みを許可する API を公開します。

試験的な機能の詳細については、試験的機能の使用に関するページを参照してください。

タブ補完の強化

PowerShell 7.2 には、タブ補完に関していくつかの機能強化が含まれています。 これらの変更には、バグ修正や使いやすさの向上が含まれます。

  • ローカライズされない説明トピックについてのタブ補完の修正 (#15265) (感謝します @MartinGC94)
  • スプラッティングが補完で位置指定パラメーターとして扱われることの修正 (#14623) (感謝します @MartinGC94)
  • コメント ベースのヘルプ キーワードの補完の追加 (#15337) (感謝します @MartinGC94)
  • Requires ステートメントの補完の追加 (#14596) (感謝します @MartinGC94)
  • Format-* コマンドレットの View パラメーターへのタブ補完の追加 (#14513) (感謝します @iSazonov)

PSReadLine 2.1 の予測 IntelliSense

PSReadLine 2.1 では、コマンド ライン補完の予測を提供するフレームワークを確立する CommandPrediction API が導入されました。 ユーザーはこの API を使用することで、ユーザーの履歴からの一致する予測に基づいて、完全なコマンドを検出、編集、実行することができます。

予測 IntelliSense は既定では無効になっています。 予測を有効にするには、次のコマンドを実行します。

Set-PSReadLineOption -PredictionSource History

将来の機能強化を可能にするための、PowerShell 7 からの DSC の分離

PSDesiredStateConfiguration モジュールは、PowerShell 7.2 パッケージから削除され、PowerShell ギャラリーに発行されるようになりました。 これにより、PSDesiredStateConfiguration モジュールを PowerShell とは別に開発できるようになり、ユーザーは環境に合わせて PowerShell と PSDesiredStateConfiguration のバージョンを組み合わせることができます。 PowerShell ギャラリーから PSDesiredStateConfiguration 2.0.5 をインストールするには:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

重要

必ず MaximumVersion パラメーターを指定してください。そうしないと、重要な違いが含まれるバージョン 3 (またはそれ以降) の PSDesireStateConfiguration がインストールされる可能性があります。

エンジンの更新

  • awakecoding·によってネイティブ PowerShell ホストからメモリにアセンブリを読み込むための LoadAssemblyFromNativeMemory 関数が追加されます。pull request #14652

破壊的変更と機能強化

  • PSDesiredStateConfiguration が PowerShell 7.2 パッケージから削除されました
  • PowerShell Linux の deb と RPM パッケージがユニバーサルになります (#15109)
  • 実験的機能 PSNativeCommandArgumentPassing: ネイティブ実行可能ファイルの呼び出しに ArgumentList を使用します (#14692)
  • スクリプト コマンドレットからのすべての出力に対して -PipelineVariable が設定されるようにします (#12766)
  • ConvertTo-Json が -Depth の値を超えた場合、警告が出力されます (#13692)
  • -Directory スイッチのエイリアス D が削除されます CL-General #15171
  • 変更可能な値の型の検出が向上します (#12495)
  • ロックダウン下での NoLanguage モードの New-Object が制限されます (#14140)
  • 実行ポリシー バイパス構成の前に AppLocker 拒否構成が適用されます (#15035)
  • FileSystemInfo.TargetCodeProperty から FileSystemInfo.LinkTarget を指す AliasProperty に変更します (#16165)