共用方式為


PowerShell 7.3 的新功能

PowerShell 7.3 是建置在 .NET 7.0 上的下一個穩定版本。

PowerShell 7.3 包含下列功能、更新和重大變更。

重大變更和改善

  • 在此版本中,已更新或移除 Windows API 以符合規範,這表示 PowerShell 7.3 不會在 Windows 7 上執行。 雖然不再支援 Windows 7,但先前的組建可以在 Windows 7 上執行。
  • 只有 Windows 10 版本 1809 和更新版本才支援 Hyper-V 的 PowerShell Direct。
  • Test-Connection 因為 .NET 7 的刻意變更而中斷。 其追蹤方式為 #17018
  • clean 區塊新增至腳本區塊,以便 cleanbeginprocessend 平行,以便於資源清理 (#15177
  • 將 的預設值 $PSStyle.OutputRendering 變更為 [主機]
  • 使 Out-StringOut-File 的字串輸入保持不變 (#17455
  • 將 System.Security.AccessControl.ObjectSecurity 的類型數據定義移至 Microsoft.PowerShell.Security 模組 (#16355) (感謝@iSazonov!)
    • 在這項變更之前,使用者不需要明確地匯入 Microsoft.PowerShell.Security 模組,才能使用針對 System.Security.AccessControl.ObjectSecurity 實例定義的程式代碼屬性。
    • 這項變更之後,用戶必須明確地匯 入 Microsoft.PowerShell.Security 模組,才能使用這些程式代碼屬性和程式碼方法。

Tab 鍵自動完成改善

  • PowerShell 7.3 包含 PSReadLine 2.2.6,預設會啟用預測性智慧感知 (IntelliSense)。 如需詳細資訊,請參閱 about_PSReadLine
  • 修正為 ValidateScriptAttribute 指定的腳本區塊中的標籤自動完成功能。 (#14550) (感謝@MartinGC94!)
  • 新增迴圈標籤的索引標籤自動完成至 break/continue 之後 (#16438) (感謝 @MartinGC94!)
  • 在多個情境下改善哈希表功能完整性 (#16498)(感謝 @MartinGC94!))
    • 參數散布
    • 引數參數Invoke-CimMethod
    • FilterHashtable 參數 Get-WinEvent
    • CIM Cmdlet 的屬性參數
    • 從成員完成情境中移除重複項目
  • 支援在網路共用(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
  • 請將可執行檔案的路徑指定為 TargetObject 以用於非零退出代碼的 ErrorRecord (#16108) (感謝 @rkeithhill!))

會話功能和遠端操作改進

  • 新增 -Options 至透過 SSH 命令的 PSRP,以允許直接傳遞 OpenSSH 選項 (#12802) (感謝 @BrannenGH!)
  • -ConfigurationFile 參數新增至 pwsh,以允許啟動使用 .pssc 檔案中定義的工作階段組態的新進程(#17447
  • 新增在非 Windows 平臺上使用 New-PSSessionConfigurationFile 的支援 (#17447

更新的 Cmdlet

  • 將參數新增 -HttpVersion 至 Web Cmdlet (#15853) (感謝 @hayhay27!)
  • 為開放式輸入標籤新增對 Web Cmdlet 的支援(#16193)(感謝 @farmerau!))
  • 修正 ConvertTo-Json -Depth 以允許最多 100 個 (#16197) (感謝 @KevRitchie!)
  • 使用表達式呼叫 Invoke-Command$Using: 時改善變數處理 (#16113) (感謝 @dwtaber!)
  • 新增 -StrictModeInvoke-Command 以允許在本機叫用命令時指定 strict 模式 (#16545) (感謝 @Thomas-Yu!)
  • clean 區塊新增至腳本區塊,作為 beginprocessend 的對等,以允許輕鬆清除資源(#15177
  • 新增 -Amended 切換至 Get-CimClass Cmdlet(#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!)
  • 以目前文化格式呈現表格中的十進位數 (#17650
  • 新增排序為 OrderedDictionary 的類型加速器 (#17804) (感謝 @fflaten!)
  • 新增 find.exe 至 Windows 的舊版自變數系結行為 (#17715
  • 新增 -NoProfileLoadTime 切換至 pwsh (#17535) (感謝 @rkeithhill!))

如需變更的完整清單,請參閱 GitHub 存放庫中的變更記錄 檔。

實驗性功能

在 PowerShell 7.3 中,下列實驗性功能成為主流:

  • PSAnsiRenderingFileInfo - 此功能新增 $PSStyle.FileInfo 成員,並啟用特定文件類型的著色功能。

  • PSCleanBlock - 將 clean 區塊新增至腳本區塊,作為 beginprocessend 的對等區塊,以便於資源的輕鬆清理。

  • PSAMSIMethodInvocationLogging - 延伸發送至 AMSI 檢查的資料範圍,以涵蓋所有 .NET 方法成員的調用。

  • PSNativeCommandArgumentPassing - PowerShell 現在會使用 StartProcessInfo 物件的 ArgumentList 屬性,而不是叫用原生可執行檔時重建字元串的舊機制。

    PowerShell 7.3.1 會在 Windows 中新增 sqlcmd.exe 使用 Legacy 自變數傳遞樣式的原生命令清單。

  • PSExec - 新增新的 Switch-Process cmdlet(別名 exec),以提供對非 Windows 系統的相容性。

    PowerShell 7.3.1 已將 exec 別名變更為封裝 Switch-Process 的函式。 函式可讓您將參數傳遞至可能錯誤綁定到 WithCommand 參數的原生命令。

PowerShell 7.3 引進下列實驗性功能:

PowerShell 7.3 已移除下列實驗性功能:

  • PSNativePSPathResolution 不再支持實驗性功能。
  • PSStrictModeAssignment 不再支持實驗性功能。

如需實驗性功能的詳細資訊,請參閱 使用實驗性功能