共用方式為


about_Windows_PowerShell_5.0

簡短描述

描述 Windows PowerShell 5.0 中包含的新功能。

詳細描述

Windows PowerShell 5.0 包括一些重要的新功能,能夠擴充用途、改善可用性,並讓您更輕鬆且全面地控制及管理 Windows 環境。

Windows PowerShell 5.0 與舊版相容。 針對 Windows PowerShell 4.0、Windows PowerShell 3.0 及 Windows PowerShell 2.0 所設計的 Cmdlet、提供者、模組、嵌入式管理單元、指令碼、函式及設定檔,通常可在不進行變更的情況下於 Windows PowerShell 5.0 中運作。

Windows PowerShell 5.0 預設會在 Windows Server Technical Preview 和 Windows Technical Preview 上安裝。 若要在 Windows Server 2012 R2、Windows 8.1 企業版或 Windows 8.1 專業版上安裝 Windows PowerShell 5.0,請下載並安裝 Windows Management Framework 5.0。 請務必先閱讀下載詳細資料,並確認符合所有系統需求,再安裝 Windows Management Framework 5.0 Preview。

您也可以閱讀 Windows PowerShell 的新功能中 Windows PowerShell 5.0 的變更。

新功能

Windows PowerShell 的新功能

  • 自 Windows PowerShell 5.0 版開始,您可以透過使用類似其他物件導向之程式設計語言的正式語法和語意,以使用類別進行開發。 Class、Enum 與其他關鍵字已新增至 Windows PowerShell 語言以支援新功能。 如需使用類別的詳細資訊,請參閱<about_Classes>。

  • 在與 Microsoft Research 合作之下,已新增 ConvertFrom-String Cmdlet。 ConvertFrom-String 可讓您擷取及剖析文字字串內容的結構化物件。 如需詳細資訊,請參閱<ConvertFrom-String>。

  • 新的模組 Microsoft.PowerShell.Archive 包括的 Cmdlet,可讓您將檔案和資料夾壓縮為封存 (也稱為 ZIP) 檔案、從現有的 ZIP 檔案解壓縮檔案,並將 ZIP 檔案更新為已壓縮檔案的較新版本。

  • 新的模組 OneGet 可讓您探索並安裝因特網上的軟體套件。 OneGet 模組是現有套件管理員的管理員或多任務器, (也稱為套件提供者,) 將 Windows 套件管理與單一 Windows PowerShell 介面整合。

  • 新的模組 PowerShellGet 可讓您在 PowerShell 資源庫上尋找、安裝、發佈和更新模組和 DSC 資源,或執行 Register-PSRepository Cmdlet 來設定的內部模組存放庫。

  • New-Item、Remove-Item 及 Get-ChildItem 已增強為支援符號連結的建立與管理。 New-Item 的 ItemType 參數接受新的值符號連結。 現在您可以執行 New-Item Cmdlet,在單一行中建立符號連結。

  • Windows PowerShell 轉譯已經過改良,因此它不僅能套用至主控台主機 (powershell.exe),也可以套用至所有的裝載應用程式 (例如 Windows PowerShell ISE)。 轉譯選項 (包括啟用全系統轉譯) 可以透過啟用 [打開 PowerShell 轉譯] 群組原則設定 (位於 [系統管理範本\/Windows 元件\/Windows PowerShell]) 來設定。

  • 新的詳細指令碼追蹤功能可讓您在系統上啟用對 Windows PowerShell 指令碼之使用情況的詳細追蹤和分析。 啟用詳細指令碼追蹤後,Windows PowerShell 會將所有指令碼區塊記錄在 Windows 事件追蹤 (ETW) 事件記錄檔中:Microsoft\-Windows\-PowerShell\/Operational

  • 從 Windows PowerShell 5.0 開始,新的密碼編譯訊息語法 Cmdlet 支援針對受密碼編譯保護之訊息,使用 IETF 標準格式來加密和解密內容,如 RFC5652 所述。 Microsoft.PowerShell.Security 模組中已新增 Get-CmsMessage、Protect-CmsMessage 以及 Unprotect-CmsMessage Cmdlet。

  • Microsoft.PowerShell.Utility 模組中,新的 Get-Runspace、Debug-Runspace、Get-RunspaceDebug、Enable-RunspaceDebug 以及 Disable-RunspaceDebug Cmdlet,可讓您設定 Runspace 偵錯選項,並啟動和停止 Runspace 偵錯。 針對偵錯任意 Runspaces - 也就是說,不是 Windows PowerShell 控制台的預設 Runspace 或 Windows PowerShell ISE 會話的 runspaces - Windows PowerShell 可讓您在腳本中設定斷點,並新增斷點來停止腳本執行,直到您可以附加調試程式以偵錯 Runspace 腳本為止。 Windows PowerShell 針對 Runspace 的指令碼偵錯工具,已新增支援任意 Runspace 的巢狀偵錯。

  • 新的 Enter-PSHostProcess 與 Exit-PSHostProcess Cmdlet 可讓您將處理程序中的 Windows PowerShell 指令碼與目前正在 Windows PowerShell 主控台中執行的處理程序分開,以進行個別偵錯。 您可執行 Enter-PSHostProcess 輸入或附加特定處理程序識別碼,然後執行 Get-Runspace 傳回處理程序內的使用中 Runspace。 完成處理程序內的指令碼偵錯時,可執行 Exit-PSHostProcess 以中斷處理程序的連結。

  • Microsoft.PowerShell.Utility 模組已新增 Wait-Debugger。 您可以先執行 Wait-Debugger 停止偵錯工具中的指令碼,然後再執行指令碼中的下一個陳述式。

  • Windows PowerShell 工作流程偵錯工具現已支援命令或 TAB 鍵自動完成,您也可以偵錯巢狀工作流程函式。 現在,您只要按 Ctrl+Break,即可進入執行指令碼、本機和遠端工作階段,以及工作流程指令碼中的偵錯工具。

  • Microsoft.PowerShell.Core 模組已新增 Debug-Job Cmdlet,以針對 Windows PowerShell 工作流程、背景,以及正在遠端工作階段中執行之工作的執行工作指令碼進行偵錯。

  • Windows PowerShell 工作已新增 AtBreakpoint 狀態。 當工作正在執行的指令碼包含所設的中斷點,且該指令碼已達中斷點時,即會套用 AtBreakpoint 狀態。 當工作在偵錯中斷點停止時,您必須執行 Debug-Job Cmdlet 以進行工作偵錯。

  • Windows PowerShell 5.0 實作針對 $PSModulePath 中相同資料夾之單一 Windows PowerShell 模組的多個版本支援。 RequiredVersion 屬性已新增至 ModuleSpecification 類別,以協助您取得所需的模組版本;此屬性與ModuleVersion屬性互斥。 現在,您可將 RequiredVersion 與 Get-Module、Import-Module 和 Remove-Module Cmdlett 的 FullyQualifiedName 參數值一起使用。

  • 您現在可以執行 Test-ModuleManifest Cmdlet 來驗證模組版本。

  • Get-Command Cmdlet 的結果現在會顯示 Version 欄;CommandInfo 類別已新增 Version 屬性。 Get-Command 會顯示來自多個版本之相同模組的命令。 Version 屬性也屬於 CmdletInfo 衍生類別的一部分:CmdletInfo 和 ApplicationInfo。

  • 新的 Get-ItemPropertyValue Cmdlet 讓您不需使用點標記法,即可取得屬性值。 例如,在舊版 Windows PowerShell 中,您可以執行下列命令來取得 PowerShellEnginer 登錄機碼 Application Base 屬性的值:

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    (Get-ItemProperty -Path $keypath -Name  ApplicationBase).ApplicationBase
    

    從 Windows PowerShell 5.0 開始,您可以執行

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    Get-ItemPropertyValue -Path $keypath -Name ApplicationBase
    
  • 新的 NetworkSwitch 模組包含 Cmdlet,可讓您套用交換器、虛擬 LAN (VLAN) ,以及基本第 2 層網路交換器埠組態,以 Windows Server 2012 R2 (和更新版本) 標誌認證的網路交換器。

  • Import-Module 和 Remove-Module Cmdlet 已新增 FullyQualifiedName 參數,以支援儲存單一模組的多個版本。

  • Save-Help、Update-Help、Import-PSSession、Export-PSSession 和 Get-Command 皆有 ModuleSpecification 類型的新參數 FullyQualifiedModule。 您可新增這個參數來指定模組的完整名稱。

  • $PSVersionTable.PSVersion 的值已經更新至 5.0。

Windows PowerShell 預期狀態設定的新功能

  • Windows PowerShell 語言增強功能可讓您使用類別來定義 Windows PowerShell 預期狀態設定 (DSC) 資源。 Import-DscResource 現在是真實的動態關鍵字;Windows PowerShell 會剖析指定模組的根模組,搜尋包含 DscResource 屬性的類別。 現在,您可以使用類別來定義 DSC 資源;在這種情況下,模組資料夾中不需具備 MOF 檔案,也不需要 DSCResource 子資料夾。 Windows PowerShell 模組檔案可以包含多個 DSC 資源類別。

  • PSDesiredStateConfiguration 模組中的下列 Cmdlet 已新增 ThrottleLimit 參數: 您可新增 ThrottleLimit 參數來指定要在目標電腦或裝置上同時運作的命令數。

    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • 使用集中式 DSC 錯誤報告時,不只會將豐富的錯誤資訊記錄到事件記錄檔中,還可將其傳送到中央位置以便稍後進行分析。 您可以使用這個中央位置,來儲存任何伺服器在其環境中所發生的 DSC 設定錯誤。 於中繼設定中定義報表伺服器之後,會將所有錯誤傳送到報表伺服器,然後儲存在資料庫中。 不論是否有設定要從提取伺服器提取設定的目標節點,您都可以設定這項功能。

  • 針對 Windows PowerShell ISE 的改善能簡化 DSC 資源的撰寫。 您現在可以執行下列操作:

    • 在區塊的空白行輸入 Ctrl+空格鍵,列出設定或節點區塊中的所有 DSC 資源。
    • 列舉類型資源屬性的自動完成功能。
    • DSC 資源 DependsOn 屬性的自動完成功能,以設定的其他資源執行個體為基礎。
    • 增強的資源屬性值 TAB 鍵自動完成。
  • 新的 DscLocalConfigurationManager 屬性可將設定區塊指定為中繼設定,用於設定 DSC 本機設定管理員。 此屬性會限制住設定,讓它只包含設定 DSC 本機設定管理員的項目。 在處理期間,此組態會產生 *.meta.mof 檔案,然後藉由執行 Set-DscLocalConfigurationManager Cmdlet 傳送至適當的目標節點。

  • Windows PowerShell 5.0 現已允許部分設定。 您可將設定文件以片段形式傳遞到節點。 若要讓節點接收組態檔的多個片段,必須先設定節點的本機 Configuration Manager 來指定預期的片段。

  • Windows PowerShell 5.0 的 DSC 中提供跨電腦同步處理的新功能。 使用內建 WaitFor* 資源 (WaitForAll、WaitForAny 和 WaitForSome) ,您現在可以在設定執行期間指定電腦之間的相依性,而不需外部協調流程。 這些資源會透過使用 WS-Man 通訊協定的 CIM 連線提供節點對節點同步處理。 設定可以等候另一部電腦的特定資源狀態變更。

  • Just Enough Administration (JEA) 是一種新的委派安全性功能,它可利用 DSC 和 Windows PowerShell 受限 Runspace 來協助保障企業安全,避免資料遺失或遭到員工洩漏,無論是有意還是無意。 如需 JEA 的詳細資訊,包括可以下載 xJEA DSC 資源的位置,請參閱 Just Enough Administration

  • PSDesiredStateConfiguration 模組已新增下列新的 Cmdlet。

    • 新的 Get-DscConfigurationStatus Cmdlet 會從目標節點取得設定狀態的高層級資訊。 您可以取得上一次設定或所有設定的狀態。
    • 新的 Compare-DscConfiguration Cmdlet 會針對指定的設定與一或多個目標節點的實際狀態進行比較。
    • 新的 Publish-DscConfiguration Cmdlet 會將設定 MOF 檔案複製到目標節點,但不會套用設定。 直到下個一致性階段,或當您執行 Update-DscConfiguration Cmdlet 時才會套用設定。
    • 新的 Test-DscConfiguration Cmdlet 可讓您驗證所產生的設定與所需的設定是否相符:如果設定與所需的相符,會傳回 True;如果實際設定與所需的不符,會傳回 False。
    • 新的 Update-DscConfiguration Cmdlet 會強制處理設定。 如果本機設定管理員處於提取模式,此 Cmdlet 會從提取伺服器取得設定之後才套用。

Windows PowerShell ISE 的新功能

  • 您現在可以在 #D6FAC4AEA773040189E73F7254BCC3C6E ISE 的本機複本中編輯遠端 Windows PowerShell 文稿和檔案,方法是執行 Enter-PSSession,在儲存您要編輯之檔案的電腦上啟動遠端工作階段,然後執行 PSEdit <path and file name on the remote computer>。 這項功能可減輕 Windows PowerShell 檔案的編輯工作,這些檔案是儲存在 Windows Server 的 Server Core 安裝選項上,該位置並無法執行 Windows PowerShell ISE。
  • Windows PowerShell ISE 現可支援 Start-Transcript Cmdlet。
  • 現在,您可以在 Windows PowerShell ISE 中偵錯遠端指令碼。
  • 新的功能表命令 「全部中斷」 (Ctrl+B) 可中斷在本機和遠端執行指令碼的偵錯工具。

Windows PowerShell Web 服務的新功能 (Management OData IIS 擴充功能)

  • 從 Windows PowerShell 5.0 開始,您可以執行 Export-ODataEndpointProxy Cmdlet,根據指定 OData 端點所公開的功能產生一組 Windows PowerShell Cmdlet。

Windows PowerShell 5.0 的重大錯誤修正

  • Windows PowerShell 5.0 包含新的 COM 實作,它在您使用 COM 物件時可提供大幅的效能改善。

如需 Windows PowerShell 5.0 的詳細資訊,請流覽下列網站:

另請參閱

about_Classes

about_Debuggers

about_Desired_State_Configuration

about_Updatable_Help

Save-Help

Get-Module

Debug-Job

Update-Help

Get-Process

Remove-Computer

Set-ExecutionPolicy

Add-Computer

ConvertFrom-String

Invoke-RestMethod

Set-JobTrigger

Set-ScheduledJob

New-JobTrigger

Register-ScheduledJob

Enable-JobTrigger

Disable-JobTrigger

關鍵 字

Windows PowerShell 5.0 的新功能