PowerShell 7.3 の新機能
PowerShell 7.3 は、.NET 7.0 上に構築された次の安定版リリースです。
PowerShell 7.3 には、次の機能、更新、破壊的変更が含まれています。
破壊的変更と機能強化
- Windows API は、このリリースでは、コンプライアンスのために更新または削除されました。つまり、PowerShell 7.3 は Windows 7 では実行できません。 Windows 7 はサポート対象外となりましたが、以前のビルドは Windows 7 で実行できます。
- PowerShell Direct for Hyper-V は、Windows 10 バージョン 1809 以降でのみサポートされています。
- .NET 7 の意図的な破壊的変更により、
Test-Connection
が中断されます。 これは #17018 によって追跡されています begin
、process
、およびend
に対するピアとしてclean
ブロックをスクリプト ブロックに追加して簡単なリソース クリーンアップを可能にする (#15177)$PSStyle.OutputRendering
の既定値を Host に変更Out-String
とOut-File
で文字列入力を変更せずに維持 (#17455)- System.Security.AccessControl.ObjectSecurity の型データ定義を Microsoft.PowerShell.Security モジュールに移動 (#16355) (感謝します @iSazonov!)
- この変更の前は、ユーザーは System.Security.AccessControl.ObjectSecurity のインスタンスに対して定義されたコード プロパティを使用するために、Microsoft.PowerShell.Security モジュールを明示的にインポートする必要はありません。
- この変更の後は、ユーザーはそれらのコード プロパティとコード メソッドを使用するために、Microsoft.PowerShell.Security モジュールを明示的にインポートする必要があります。
タブ補完の改善
- PowerShell 7.3 には、既定で予測 IntelliSense を有効にする PSReadline 2.2.6 が含まれています。 詳細については、「about_PSReadLine」を参照してください。
ValidateScriptAttribute
に対して指定されたスクリプト ブロック内でのタブ補完を修正 (#14550) (感謝します @MartinGC94!)break
/continue
後のループ ラベルのタブ補完を追加 (#16438) (感謝します @MartinGC94!)- 複数のシナリオでの Hashtable 補完の改善 (#16498) (感謝します @MartinGC94!)
- パラメーター スプラッティング
Invoke-CimMethod
の Arguments パラメーターGet-WinEvent
の FilterHashtable パラメーター- CIM コマンドレットの Property パラメーター
- メンバー補完シナリオから重複を削除
- ネットワーク共有 (UNC パス) 補完でのスラッシュのサポート (#17111) (感謝します @sba923!)
- メンバーのオートコンプリートを改善 (#16504) (感謝します @MartinGC94!)
- パラメーターの列挙型よりも ValidateSet の補完を優先する (#15257) (感謝します @MartinGC94!)
- 型パラメーターを持つジェネリック メソッドの型の推定のサポートを追加 (#16951) (感謝します @MartinGC94!)
- 型の推定とコンプリートを改善 (#16963) (感謝します @MartinGC94!)
ForEach-Object -MemberName
のコンプリート結果にメソッドを表示できるようにする([void](""))
などの void を返す式でのコンプリートを禁止- クラス コンプリートが AST に基づいているときに、既定以外のクラスのコンストラクターを表示できるようにする
$_
の型の推定を改善 (#17716) (感謝します @MartinGC94!)- ICollection の型の推定を修正 (#17752) (感謝します @MartinGC94!)
- 変数を補完するときに中かっこが削除されないようにする (#17751) (感謝します @MartinGC94!)
- ディクショナリのインデックス式の補完を追加 (#17619) (感謝します @MartinGC94!)
- 属性トークンの型の補完を修正 (#17484) (感謝します @MartinGC94!)
- 動的パラメーター タブの補完を改善 (#17661) (感謝します @MartinGC94!)
- 値の前のパラメーターを補完するときに位置指定パラメーターをバインドしないようにする (#17693) (感謝します @MartinGC94!)
エラー処理を改善しました
- リダイレクションによりコマンド式用に
$?
を正しく設定 (#16046) $PSNativeCommandUseErrorActionPreference
を使用した場合のキャスト エラーを修正 (#15993)- ネイティブ コマンドのエラー処理で必要に応じて
ErrorActionPreference
を優先させる (#15897) - 0 以外の終了コード ErrorRecord 用に
TargetObject
として実行可能ファイルのパスを指定 (#16108) (感謝します @rkeithhill!)
セッションとリモート処理の機能強化
- SSH コマンド経由で PSRP に
-Options
を追加し、OpenSSH オプションを直接渡せるようにする (#12802) (感謝します @BrannenGH!) .pssc
ファイルで定義されたセッション構成で新しいプロセスを開始できるように、pwsh
に-ConfigurationFile
パラメーターを追加 (#17447)- Windows 以外のプラットフォームでの
New-PSSessionConfigurationFile
の使用のサポートを追加 (#17447)
更新されたコマンドレット
-HttpVersion
パラメーターを Web コマンドレットに追加 (#15853) (感謝します @hayhay27!)- 自由形式の入力タグの Web コマンドレットにサポートを追加 (#16193) (感謝します @farmerau!)
- 最大 100 を許可するように
ConvertTo-Json -Depth
を修正 (#16197) (感謝します @KevRitchie!)、 $using:
式を使用してInvoke-Command
を呼び出す際の変数処理を改善 (#16113) (感謝します @dwtaber!)- コマンドをローカルで呼び出すときに厳格モードを指定できるように
Invoke-Command
に-StrictMode
を追加 (#16545) (感謝します @Thomas-Yu!) begin
、process
、およびend
に対するピアとしてclean
ブロックをスクリプト ブロックに追加して簡単なリソース クリーンアップを可能にする (#15177)-Amended
スイッチをGet-CimClass
コマンドレットに追加 (#17477) (感謝します @iSazonov)- 順序付きハッシュテーブルを使用するように
ConvertFrom-Json -AsHashtable
を変更 (#17405) Out-GridView
に送信する前の文字列内の ANSI エスケープ シーケンスを削除 (#17664)New-TimeSpan
にミリ秒パラメーターを追加 (#17621) (感謝します @NoMoreFood!)- メソッド定義とオーバーロードを表示するときに省略可能なパラメーターを表示 (#13799) (感謝します @eugenesmlv!)
- 現在の作業ディレクトリが存在しなくなった場合でもコマンドの実行を許可 (#17579)
Set-AuthenticodeSignature -TimeStampServer
での HTTPS のサポートを追加 (#16134) (感謝します @Ryan-Hutchison-USAF!)- 現在のカルチャを使用してテーブル内の 10 進数をレンダリング (#17650)
- OrderedDictionary に対して順序付けされた型アクセラレータを追加 (#17804) (感謝します @fflaten!)
- Windows の従来の引数バインド動作に
find.exe
を追加 (#17715) - pwsh に
-noprofileloadtime
スイッチを追加 (#17535) (感謝します @rkeithhill!)
詳細な変更一覧については、GitHub リポジトリの変更ログを参照してください。
試験的な機能
PowerShell 7.3 では、次の試験的な機能がメインストリームになりました。
PSAnsiRenderingFileInfo
- この機能により、$PSStyle.FileInfo
メンバーが追加され、特定のファイルの種類の色分けが有効になります。PSCleanBlock
-begin
、process
、およびend
に対するピアとして、clean
ブロックをスクリプト ブロックに追加して、簡単なリソース クリーンアップを可能にします。PSAMSIMethodInvocationLogging
- 検査のために AMSI に送信されるデータを拡張して、.NET メソッド メンバーのすべての呼び出しを含めます。PSNativeCommandArgumentPassing - ネイティブの実行可能ファイルを呼び出すとき、PowerShell により、文字列を再構築する古いメカニズムではなく、StartProcessInfo オブジェクトの ArgumentList プロパティが使用されるようになりました。
PowerShell 7.3.1 では、引数渡しの
Legacy
スタイルを使用する Windows のネイティブ コマンドのリストにsqlcmd.exe
が追加されます。PSExec
- 新しいSwitch-Process
コマンドレット (別名exec
) を追加して、Windows 以外のシステムにexec
との互換性を提供します。PowerShell 7.3.1 では、
exec
エイリアスがSwitch-Process
をラップする関数に変更されました。 関数を使用すると、WithCommand パラメーターに誤ってバインドされている可能性のあるパラメーターをネイティブ コマンドに渡すことができます。
PowerShell 7.3 では、次の試験的な機能が導入されています。
- PSNativeCommandErrorActionPreference - ネイティブ コマンドによって生成されたエラーを PowerShell エラーとすることができるようにするために、
$PSNativeCommandUseErrorActionPreference
変数を追加します。
PowerShell 7.3 では、次の試験的な機能が削除されました。
- 試験的な機能
PSNativePSPathResolution
はサポートされなくなりました。 - 試験的な機能
PSStrictModeAssignment
はサポートされなくなりました。
試験的な機能の詳細については、試験的機能の使用に関するページを参照してください。
PowerShell