共用方式為


PowerShell 7.2 的新功能

PowerShell 7.2 是下一個以 .NET 6.0 為基礎的長期服務 (LTS) 版本。

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

  • 適用於大多數支援的 Linux 發行版的新通用安裝程式套件
  • Windows 上的 Microsoft 更新支援
  • 2 個新的實驗功能
    • 改進的原生命令參數傳遞支援
    • ANSI FileInfo 色彩支援
  • 改進的標籤補全功能
  • PSReadLine 2.1 搭載智慧感知式預測功能
  • 7 個實驗性功能推廣為主流,1 個已移除
  • 將 DSC 與 PowerShell 7 分開,以推動未來改進
  • 數項重大變更以改善可用性

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

安裝更新

檢查您慣用作業系統的安裝指示:

此外,PowerShell 7.2 支援 ARM64 版本的 Windows 和 macOS 和 ARM32 和 ARM64 版本的 Debian 和 Ubuntu。

如需支援的作業系統和支援生命週期的 up-to日期資訊,請參閱 PowerShell 支援生命週期

適用於 Linux 發行版的新通用安裝套件

之前,我們為每個支援的 CentOS、RHEL、Debian 和 Ubuntu 版本建立個別的安裝程式套件。 通用安裝程式套件會將八個不同的套件合併成一個套件,讓 Linux 上的安裝更簡單。 通用套件會安裝目標發行版所需的依賴項,並建立特定平臺的變更,以確保 PowerShell 能正常運作。

Microsoft 更新對 Windows 的支援

PowerShell 7.2 新增對 Microsoft Update 的支援。 當您啟用這項功能時,您會在傳統 Windows Update (WU) 管理流程中取得最新的 PowerShell 7 更新,無論是使用商務用 Windows Update、WSUS、SCCM,還是 [設定] 中的互動式 WU 對話框。

PowerShell 7.2 MSI 套件包含下列命令行選項:

  • USE_MU - 此屬性有兩個可能的值:
    • 1 (預設值) - 選擇透過 Microsoft Update 或 WSUS 進行更新
    • 0 - 不要選擇透過 Microsoft Update 或 WSUS 更新
  • ENABLE_MU
    • 1 (預設值) - 選擇使用 Microsoft Update、Automatic Updates 或 Windows Update
    • 0 - 不要選擇使用 Microsoft 自動更新或 Windows Update

實驗性功能

下列實驗性功能現在是此版本中的主要功能:

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck - 請參閱 Import-PowerShellDataFile
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering - 請參閱 about_ANSI_Terminals
  • PSAnsiProgress - 請參閱 about_ANSI_Terminals
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

此版本中已新增下列實驗性功能:

  • PSNativeCommandArgumentPassing - 啟用此實驗性功能時,PowerShell 會使用 StartProcessInfo 物件的 ArgumentList 属性,而不是在叫用原生可執行檔時重建字符串的目前機制。 此功能會新增新的自動變數 $PSNativeCommandArgumentPassing,讓您在運行時間選取行為。

  • PSAnsiRenderingFileInfo - 允許 ANSI 色彩自訂檔案資訊。

  • PSLoadAssemblyFromNativeCode - 公開 API 以允許從原生代碼載入元件。

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

改進的自動完成功能

PowerShell 7.2 包含數項有關按 Tab 鍵自動完成功能的改善。 這些變更包括 Bug 修正和改善可用性。

  • 修正未本地化的關於* 主题的索引標籤自動完成(#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

將 DSC 從 PowerShell 7 中分離,以促進未來的改進

PSDesiredStateConfiguration 模組已從 PowerShell 7.2 套件中移除,現在已發行至 PowerShell 資源庫。 這可讓 PSDesiredStateConfiguration 模組獨立於 PowerShell 開發,而且使用者可以混合和比對其環境的 PowerShell 和 PSDesiredStateConfiguration 版本。 若要從 PowerShell 資源庫安裝 PSDesiredStateConfiguration 2.0.5:

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

重要

請務必包含 MaximumVersion 參數,或者您可以安裝包含顯著差異的 PSDesireStateConfiguration 第 3 版(或更新版本)。

引擎更新

  • 新增 LoadAssemblyFromNativeMemory 功能,以透過 awakecoding 從原生 PowerShell 主機載入記憶體中的裝配體。合併請求 #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.LinkTargetAliasProperty (#16165)