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.Target
從 CodeProperty 變更為指向FileSystemInfo.LinkTarget
的 AliasProperty (#16165)