共用方式為


Windows Management Framework (WMF) 5.x 版本資訊

WMF 5.0 變更

  • PowerShell 5.0 會新增結構化 資訊 數據流
  • DSC 的改善包括四個新的 DSC 資源:
    • WindowsFeatureSet
    • WindowsOptionalFeatureSet
    • ServiceSet
    • ProcessSet
  • 已新增 Just Enough Administration,以透過 PowerShell 遠端功能啟用以角色為基礎的系統管理
  • PowerShell 5.0 擴充語言,以包含使用者定義的類別和列舉
  • 改善 PowerShell ISE 中的偵錯功能,並新增遠端偵錯
  • 已新增PowerShellGet和 PackageManagement 模組
  • 增強的 PowerShell 腳本記錄和文字記錄
  • 新增密碼編譯訊息語法 Cmdlet
  • WMF 5.0 包含適用於 Windows 的 NetworkSwitchManager 模組
  • 已新增 Microsoft.PowerShell.ODataUtils 模組
  • 新增軟體清查記錄的支援 (SIL)
  • 處理新的或更新 Cmdlet 以回應使用者要求和問題

WMF 5.1 變更

WMF 5.1 包含使用 Windows Server 2016 發行的 PowerShell、WMI、WinRM 和軟體清查記錄 (SIL) 元件。 WMF 5.1 可以安裝在 Windows 7、Windows 8.1、Windows Server 2008 R2、2012 和 2012 R2 上,並提供數項 WMF 5.0 改善,包括:

  • 新的 Cmdlet
  • PowerShellGet 改進包括強制執行已簽署的模組,以及安裝 JEA 模組
  • PackageManagement 已新增容器、CBS 設定、EXE 型設定、CAB 套件的支援
  • DSC 和 PowerShell 類別的偵錯改善
  • 安全性增強功能,包括強制執行來自提取伺服器的目錄簽署模組,以及使用PowerShellGet Cmdlet時
  • 回應一些使用者要求和問題

重要

在 Windows Server 2008 或 Windows 7 上安裝 WMF 5.1 之前,請先確認未安裝 WMF 3.0。 如需詳細資訊,請參閱 windows Server 2008 R2 SP1 和 Windows 7 SP1WMF 5.1 必要條件。

PowerShell 版本

從 5.1 版開始,PowerShell 可在代表不同功能集和平臺相容性的不同版本中使用。

  • Desktop Edition: 建置在 .NET Framework 上,並提供腳本和模組的相容性,以 Windows 的完整使用量版本執行之 PowerShell 版本為目標,例如 Server Core 和 Windows Desktop。
  • Core 版本: 建置在 .NET Core 上,並提供與以 Nano Server 和 Windows IoT 等 Windows 使用量版本為目標之 PowerShell 版本的腳本和模組的相容性。

深入瞭解如何使用PowerShell版本

模組分析快取

從WMF 5.1 開始,PowerShell 可控制用來快取模組相關數據的檔案,例如其導出的命令。

根據預設,此快取會儲存在 檔案中 ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache。 在搜尋命令時,通常會在啟動時讀取快取,而且會在匯入模組之後,於背景線程上寫入。

若要變更快取的預設位置,請在啟動PowerShell之前,先設定 $env:PSModuleAnalysisCachePath 環境變數。 此環境變數的變更只會影響子進程。 此值應該會命名PowerShell有權建立和寫入檔案的完整路徑(包括檔名)。 若要停用檔案快取,請將此值設定為無效的位置,例如:

$env:PSModuleAnalysisCachePath = 'nul'

這會設定無效裝置的路徑。 如果 PowerShell 無法寫入路徑,則不會傳回錯誤,但您可以使用追蹤來查看錯誤報告:

Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }

寫出快取時,PowerShell 會檢查已不存在的模組,以避免不必要的大型快取。 有時候不需要這些檢查,在此情況下,您可以藉由設定來關閉這些檢查:

$env:PSDisableModuleAnalysisCacheCleanup = 1

設定此環境變數將會立即在目前的程式中生效。

指定模組版本

在 WMF 5.1 中,using module 與 PowerShell 中的其他模組相關建構相同。 之前,您無法指定特定的模組版本;如果有多個版本存在,這會導致錯誤。

在 WMF 5.1 中:

  • 您可以使用 ModuleSpecification 建構函式 (Hashtable)

    此哈希表的格式與 Get-Module -FullyQualifiedName相同。

    範例:using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}

  • 如果模組有多個版本,PowerShell 會使用與 Import-Module 相同的 解析邏輯,而且不會傳回錯誤,其行為與 Import-ModuleImport-DscResource相同。

Pester 的改善

在 WMF 5.1 中,隨附於 PowerShell 的 Pester 版本已從 3.3.5 更新為 3.4.0。 此更新可為 Nano Server 上的 Pester 提供更好的行為。

您可以檢查 GitHub 存放庫中 CHANGELOG,以檢閱 Pest 中的變更。