PowerShell 7.3 の新機能

PowerShell 7.3 は、.NET 7.0 上に構築された次回のプレビュー リリースです。

PowerShell 7.3-preview.3 には、次の機能、更新、破壊的変更が含まれています。

7.3-preview.3 での既知の問題

これらの問題は、.NET 7 の次回のリリースで修正される必要があります

  • .NET 7 の意図的な破壊的変更により、Test-Connection が中断されます。 これは #17018 によって追跡されています
  • .NET 7 の回帰により、AssemblyName.FullName で予期しない動作が発生します

エラー処理を改善しました

  • リダイレクションによりコマンド式用に $? を正しく設定 (#16046)
  • $PSNativeCommandUseErrorActionPreference (#15993) を使用した場合のキャスト エラーを修正
  • ネイティブ コマンドのエラー処理で必要に応じて ErrorActionPreference を優先させる (#15897)
  • 0 以外の終了コード ErrorRecord 用に TargetObject として実行可能ファイルのパスを指定 (#16108) (@rkeithhill に感謝します)

セッションとリモート処理の機能強化

  • SSH コマンド経由で PSRP に -Options を追加し、OpenSSH オプションを直接渡せるようにする (#12802) (@BrannenGH に感謝します)
  • .pssc ファイルで定義されたセッション構成で新しいプロセスを開始できるように、pwsh-ConfigurationFile パラメーターを追加 (#17447)
  • Windows 以外のプラットフォームでの New-PSSessionConfigurationFile の使用のサポートを追加 (#17447)

タブ補完の改善

  • ValidateScriptAttribute に対して指定されたスクリプト ブロック内でのタブ補完を修正 (#14550) (@MartinGC94 に感謝します)
  • break/continue 後のループ ラベルのタブ補完を追加 (#16438) (@MartinGC94 に感謝します)
  • 複数のシナリオでの Hashtable 補完の改善 (#16498) (@MartinGC94 に感謝します)
    • パラメーター スプラッティング
    • Invoke-CimMethodArguments パラメーター
    • Get-WinEventFilterHashtable パラメーター
    • CIM コマンドレットの Property パラメーター
    • メンバー補完シナリオから重複を削除
  • ネットワーク共有 (UNC パス) 補完でのスラッシュのサポート (#17111) (#17117) (@sba923 に感謝します)
  • メンバーのオート コンプリートを改善 (#16504) (@MartinGC94 に感謝します)
  • パラメーターの列挙型よりも ValidateSet の補完を優先する (#15257) (@MartinGC94 に感謝します)

更新されたコマンドレット

  • -HttpVersion パラメーターを Web コマンドレットに 追加 (#15853) (@hayhay27 に感謝します)
  • 自由形式の入力タグの Web コマンドレットにサポートを追加 (#16193) (@farmerau に感謝します)
  • 最大 100 を許可するように ConvertTo-Json -Depth を修正 (#16197) (@KevRitchie、@rkeithhill に感謝します)
  • $using: 式を使用して Invoke-Command を呼び出す際の変数処理を改善 (#16113) (@dwtaber に感謝します)
  • コマンドをローカルで呼び出すときに厳格モードを指定できるように Invoke-Command-StrictMode を追加 (#16545) (@Thomas-Yu に感謝します)
  • beginprocess、および end に対するピアとして clean ブロックをスクリプト ブロックに追加して簡単なリソース クリーンアップを可能にします (#15177)
  • -Amended スイッチを Get-CimClass コマンドレットに追加 (#17477) (@iSazonov に感謝します)

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

試験的な機能

PowerShell 7.3 では、次の試験的な機能が導入されています。

  • PSExec - 新しい Switch-Process コマンドレット (別名 exec) を追加して、Windows 以外のシステムに exec との互換性を提供します。
  • PSCleanBlock - beginprocess、および end に対するピアとして、clean ブロックをスクリプト ブロックに追加して、簡単なリソース クリーンアップを可能にします。
  • PSStrictModeAssignment - StrictMode パラメーターを Invoke-Command に追加して、コマンドをローカルで呼び出すときに厳格モードを指定できるようにします。
  • PSNativeCommandErrorActionPreference - ネイティブ コマンドによって生成されたエラーを PowerShell エラーとすることができるようにするために、$PSNativeCommandUseErrorActionPreference 変数を追加します。
  • PSAMSIMethodInvocationLogging - 検査のために AMSI に送信されるデータを拡張して、.NET メソッド メンバーのすべての呼び出しを含めます。

試験的な機能の詳細については、[試験的機能の使用][exp] を参照してください。

破壊的変更と機能強化

  • beginprocess、および end に対するピアとして clean ブロックをスクリプト ブロックに追加して簡単なリソース クリーンアップを可能にします (#15177)
  • $PSStyle.OutputRendering の既定値を Ansi に変更
  • Out-StringOut-File で文字列入力を変更せずに維持 (#17455)