about_Session_Configurations

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_Session_Configurations

簡短描述

描述工作階段設定,這會決定可以從遠端連線到電腦的使用者,以及他們可以執行的命令。

詳細描述

工作階段組態 (又稱為「端點」) 是本機電腦上的一組設定,可針對在遠端或本機使用者連線至本機電腦上的 Windows PowerShell 時所建立的 Windows PowerShell® 工作階段來定義環境。

電腦的系統管理員可以使用工作階段組態來保護電腦,以及為連線至電腦的使用者定義自訂環境。

系統管理員也可以使用工作階段組態來決定從遠端連線至電腦所需的權限。根據預設,只有系統管理員群組的成員有權使用工作階段組態來從遠端連線,但是您可以變更預設設定,以允許所有使用者或選取的使用者從遠端連線至您的電腦。

從 Windows PowerShell 3.0 開始,您可以使用工作階段組態檔來定義工作階段組態的元素。此功能可讓您輕鬆自訂工作階段,而不需要撰寫程式碼,並可探索的工作階段組態的屬性。若要建立工作階段組態檔,請使用 New-PSSessionConfiguration Cmdlet。如需工作階段組態檔的詳細資訊,請參閱 about_Session_Configuration_Files (https://go.microsoft.com/fwlink/?LinkId=236023)。

工作階段組態是 Web Services for Management (WS-Management) Windows PowerShell 遠端處理的功能。唯有當您使用 New-PSSession、Invoke-Command 或 Enter-PSSession Cmdlet 來連線至遠端電腦時,才會使用這些組態。

注意:若要管理的工作階段組態,請使用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell。

關於工作階段組態

每個 Windows PowerShell 工作階段都會使用工作階段組態。其中包括您使用 New-PSSession 或 Enter-PSSession Cmdlet 來建立的持續性工作階段,以及當 Cmdlet 採用 WS-Management 遠端處理技術 (例如 Invoke-Command),而您使用其 ComputerName 參數時,Windows PowerShell 所建立的暫存工作階段。

系統管理員可以使用工作階段組態來保護電腦的資源,以及為連線至電腦的使用者建立自訂環境。例如,您可以使用工作階段組態來限制電腦在工作階段中接收的物件大小、定義工作階段的語言模式,以及指定可在工作階段中使用的 Cmdlet、提供者和函式。

藉由設定工作階段組態的安全性描述元,您可以決定誰可以使用工作階段組態來連線至電腦。使用者必須要有工作階段組態的「執行」權限,才能在工作階段中使用它。如果使用者沒有使用電腦上任何工作階段組態的必要權限,使用者就無法從遠端連線至電腦。

根據預設,只有電腦的系統管理員擁有使用預設工作階段組態的權限。但是您可以變更安全性描述元,以允許所有人、不允許任何人或只允許選取的使用者在電腦上使用工作階段組態。在這裡插入子區段主體。

內建工作階段組態

Windows PowerShell 3.0 包含名為 Microsoft.PowerShell 和 Microsoft.PowerShell.Workflow 的內建工作階段組態。在執行 64 位元版 Windows 的電腦上,Windows PowerShell 也有提供 Microsoft.PowerShell32 (32 位元工作階段組態)。

根據預設,也就是當用來建立工作階段的命令沒有包含 New-PSSession、Enter-PSSession 或 Invoke-Command Cmdlet 的 ConfigurationName 參數時,會將 Windows PowerShell 工作階段組態用於工作階段。

預設工作階段組態的安全性描述元只允許本機電腦上的系統管理員群組成員使用。因此,除非您變更預設值,否則只有系統管理員群組成員可以從遠端連線至電腦。

您可以使用 $PSSessionConfigurationName 喜好設定變數來變更預設工作階段組態。如需詳細資訊,請參閱 about_Preference_Variables。

檢視本機電腦上的工作階段組態

若要取得本機電腦上的工作階段組態,請使用 Get-PSSessionConfiguration Cmdlet。

例如,輸入:

        PS C:\> Get-PSSessionConfiguration | Format-List -Property Name, Permission

        Name       : microsoft.powershell
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell.workflow
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell32
        Permission : BUILTIN\Administrators AccessAllowed

在 Windows PowerShell 3.0 中,工作階段組態物件會展開,以顯示使用工作階段組態檔來設定之工作階段組態的屬性。

例如,若要查看工作階段組態物件的所有屬性,請輸入:

        PS C:\> Get-PSSessionConfiguration | Format-List -Property *

您也可以使用 Windows PowerShell 中的 WSMan 提供者來檢視工作階段組態。WSMan 提供者會在您的工作階段中建立 WSMAN: 磁碟機。

在 WSMAN:磁碟機中,工作階段組態位於 [外掛程式] 節點中。(所有工作階段組態都位於 [外掛程式] 節點中,但是 [外掛程式] 節點中有些項目並不是工作階段組態。)

例如,若要檢視本機電腦上的工作階段組態,請輸入:在這裡插入子區段主體。

         PS C:\> dir wsman:\localhost\plugin\microsoft*
      
            WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

         Type            Keys                                Name
         ----            ----                                ----
         Container       {Name=microsoft.powershell}         microsoft.powershell
         Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
         Container       {Name=microsoft.powershell32}       microsoft.powershell32

檢視遠端電腦上的工作階段組態

若要檢視遠端電腦上的工作階段組態,請使用 Connect-WSMan Cmdlet,將遠端電腦的節點新增至本機電腦上的 WSMAN:磁碟機,然後使用 WSMAN:磁碟機來檢視工作階段組態。

例如,下列命令會將 Server01 遠端電腦的節點新增至本機電腦上的 WSMAN:磁碟機中。

        PS C:\> Connect-WSMan server01.corp.fabrikam.com

當命令完成時,您可以瀏覽至 Server01 電腦的節點,以檢視工作階段組態。

例如:

        PS C:\> cd wsman:
        
        PS WSMan:\> dir 

        ComputerName                                  Type
        ------------                                  ----
        localhost                                     Container
        server01.corp.fabrikam.com                    Container

        PS WSMan:\> dir server01*\plugin\*


               WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Plugin


        Type            Keys                                Name
        ----            ----                                ----
        Container       {Name=microsoft.powershell}         microsoft.powershell
        Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
        Container       {Name=microsoft.powershell32}       microsoft.powershell32

變更工作階段組態的安全性描述元

在 Windows Server 2012 和較新版 Windows Server 中,預設會為遠端使用者啟用內建工作階段組態。在其他支援的 Windows 版本中,您必須將工作階段組態的安全性描述元變更為允許遠端存取。

若要啟用對電腦上工作階段組態的遠端存取,請使用 Enable-PSRemoting Cmdlet。在這裡插入子區段主體。

此外,根據預設,只有電腦的系統管理員群組成員具有預設工作階段組態的「執行」權限,但您可以在預設工作階段組態上,以及您建立的任何工作階段組態上,變更安全性描述元。

若要提供其他使用者從遠端連線到電腦的權限,請使用 Set-PSSessionConfiguration Cmdlet,將這些使用者的「執行」權限新增至 Microsoft.PowerShell and Microsoft.PowerShell32 工作階段組態的安全性描述元。

例如,下列命令會開啟屬性頁,可讓您變更 Microsoft.PowerShell 預設工作階段組態的安全性描述元。

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

若要拒絕所有人存取電腦上所有工作階段組態的權限,請使用 Disable-PSSessionConfiguration Cmdlet。例如,下列命令會停用電腦上的預設工作階段組態。

        PS C:\> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

若要防止遠端使用者連線至電腦,但允許本機使用者連線,請使用 Disable-PSRemoting Cmdlet。Disable-PSRemoting 會將 "Network_Deny_All" 項目新增至電腦上的所有工作階段組態。

        PS C:\> Disable-PSRemoting

若要允許遠端使用者使用電腦上的所有工作階段組態,請使用 Enable-PSRemoting 或 Enable-PSSessionConfiguration Cmdlet。例如,下列命令會啟用對內建工作階段組態的遠端存取權。

        PS C:\> Enable-PSSessionConfiguration -name Microsoft.Power*

若要對工作階段組態的安全性描述元進行其他變更,請使用 Set-PSSessionConfiguration Cmdlet。使用 SecurityDescriptorSDDL 參數來提交 SDDL 字串值。使用 ShowSecurityDescriptorUI 參數,以顯示使用者介面屬性工作表,協助您建立新的 SDDL。

例如:

        PS C:\> Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

建立新的工作階段組態

若要在本機電腦上建立新的工作階段組態,請使用 Register-PSSessionConfiguration Cmdlet。若要定義新的工作階段組態,您可以使用 C# 組件、Window PowerShell 指令碼,以及 Register-PSSessionConfiguration Cmdlet 的參數。

例如,下列命令會建立與 Microsoft.PowerShell 工作階段組態相同的工作階段組態,只是它會將從遠端命令接收的資料限制為 20 MB。(預設值為 50 MB。) 在這裡插入子區段主體。

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

當您建立工作階段組態時,可以使用其他工作階段組態 Cmdlet 來加以管理,它會出現在 WSMAN: 磁碟機中。

如需詳細資訊,請參閱 Register-PSSessionConfiguration。

移除工作階段組態

若要從本機電腦中移除工作階段組態,請使用 Unregister-PSSessionConfiguration Cmdlet。例如,下列命令會從電腦中移除 NewConfig 工作階段組態。

        PS C:\> Unregister-PSSessionConfiguration -Name NewConfig

如需詳細資訊,請參閱 Unregister-PSSessionConfiguration。

還原工作階段組態

若要還原不小心刪除 (取消註冊) 的預設工作階段組態,請使用 Enable-PSRemoting Cmdlet。

Enable-PSRemoting Cmdlet 會重新建立電腦上不存在的所有預設工作階段組態。它不會覆寫或變更現有工作階段組態的屬性值。

若要還原預設工作階段組態的原始屬性值,請使用 Unregister-PSSessionConfiguration 來刪除工作階段組態,然後使用 Enable-PSRemoting Cmdlet 來重新建立。

選取工作階段組態

若要為工作階段選取特定的工作階段組態,請使用 New-PSSession、Enter-PSSession 或 Invoke-Command 的 ConfigurationName 參數。

例如,此命令會使用 New-PSSession Cmdlet 在 Server01 電腦上啟動 PSSession。此命令會使用 ConfigurationName 參數來選取 Server01 電腦上的 WithProfile 組態。

        PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

目前使用者必須要有 WithProfile 工作階段組態的使用權限,或是可以提供具有必要權限的使用者認證,此命令才會成功。

您也可以使用 $PSSessionConfigurationName 喜好設定變數來變更電腦上的預設工作階段組態。如需 $PSSessionConfigurationName 喜好設定變數的詳細資訊,請參閱 about_Preference_Variables。

關鍵字

about_Endpoints

about_SessionConfigurations

另請參閱

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration