共用方式為


about_Session_Configurations

簡短描述

描述會話組態,可決定可遠端連線到計算機的使用者,以及他們可以執行的命令。

詳細描述

會話組態,也稱為「端點」,是本機計算機上的一組設定,可定義遠端或本機用戶連線到本機計算機上PowerShell時所建立之PowerShell會話的環境。

計算機的系統管理員可以使用會話設定來保護計算機,以及為連線到計算機的使用者定義自定義環境。

系統管理員也可以使用會話設定來判斷遠端連線到計算機所需的許可權。 根據預設,只有 Administrators 群組的成員有權使用會話設定從遠端連線,但您可以變更預設設定以允許所有使用者或選取的使用者從遠端連線到您的電腦。

從 PowerShell 3.0 開始,您可以使用工作階段組態檔來定義工作階段組態的元素。 這項功能可讓您輕鬆地自定義會話,而不需撰寫程序代碼,並探索會話組態的屬性。 若要建立會話組態檔,請使用 New-PSSessionConfiguration Cmdlet。 如需會話組態檔的詳細資訊,請參閱 about_Session_Configuration_Files

會話設定是 WSMAN 型 PowerShell 遠端功能的功能。 只有當您使用、 Invoke-CommandEnter-PSSession Cmdlet 連線到遠端 Windows 電腦時,才會使用New-PSSession它們。

若要管理 Windows 電腦上的工作階段設定,請使用 [ 以系統管理員 身分執行] 選項啟動 PowerShell。

關於工作階段設定

每個 PowerShell 會話都會使用工作階段設定。 這包括您使用 New-PSSession 或 Enter-PSSession Cmdlet 所建立的持續性會話,以及當您使用以 WS 管理為基礎的遠端處理技術的 Cmdlet 的 ComputerName 參數時,PowerShell 所建立的暫存會話,例如 Invoke-Command。

系統管理員可以使用會話設定來保護計算機的資源,以及為連線到計算機的使用者建立自定義環境。 例如,您可以使用會話組態來限制計算機在會話中接收的物件大小、定義會話的語言模式,以及指定會話中可用的 Cmdlet、提供者和函式。

藉由設定會話組態的安全性描述元,您可以判斷誰可以使用會話設定來連線到計算機。 用戶必須具有會話組態的Execute許可權,才能在會話中使用。 如果使用者沒有在計算機上使用任何會話設定的必要許可權,使用者就無法從遠端連線到計算機。

根據預設,只有計算機的系統管理員有權使用預設會話設定。 但是,您可以變更安全性描述元,讓所有人、沒有人或只有選取的用戶在計算機上使用會話設定。

內建會話組態

PowerShell 3.0 包含名為 Microsoft.PowerShell 和 Microsoft.PowerShell.Workflow 的內建會話組態。 在執行 64 位版本的 Windows 計算機上,PowerShell 也提供 Microsoft.PowerShell32,這是 32 位會話組態。

Microsoft.PowerShell 會話設定預設會用於會話,也就是說,當建立會話的命令不包含 New-PSSession、Enter-PSSession 或 Invoke-Command Cmdlet 的 ConfigurationName 參數時。

默認會話設定的安全性描述元只允許本機計算機上的 Administrators 群組成員使用它們。 因此,除非您變更預設設定,否則只有 Administrators 群組的成員才能從遠端連線到電腦。

您可以使用$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

會話組態物件會在PowerShell 3.0中展開,以顯示使用會話組態檔設定的會話組態屬性。

例如,若要查看會話組態物件的所有屬性,請輸入:

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

您也可以在 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.wor... 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\Pl
ugin

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

變更會話設定的安全性描述元

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

若要啟用電腦上的會話設定遠端訪問,請使用 Enable-PSRemoting Cmdlet。 此 Cmdlet 會建立兩個會話組態:

  • 名稱定義為:“PowerShell”。+ “current PowerShell 版本”
  • 名稱為 「PowerShell.6」,未設定為任何特定的 PowerShell 版本。

此外,根據預設,計算機上只有 Administrators 群組的成員具有預設會話組態的 Execute 許可權,但您可以在預設會話組態和您所建立的任何會話設定上變更安全性描述項。

若要授與其他用戶遠端連線到計算機的許可權,請使用SessionConfiguration Cmdlet,將這些使用者的許可權新增至 Microsoft.PowerShell 和 Microsoft.PowerShell32 會話設定的安全性描述項。

例如,下列命令會開啟屬性頁,讓您變更 Microsoft.PowerShell 預設會話組態的安全性描述項。

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*

若要對會話設定的安全性描述元進行其他變更,請使用SessionConfiguration Cmdlet。 使用 SecurityDescriptorSDDL 參數提交 SDDL 字串值。 使用 ShowSecurityDescriptorUI 參數來顯示使用者介面屬性表,協助您建立新的 SDDL。

例如:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

建立新的工作階段組態

若要在本機計算機上建立新的會話設定,請使用 Register-PSSessionConfiguration Cmdlet。 若要定義新的會話組態,您可以使用 C# 元件、PowerShell 腳本,以及 Register-PSSessionConfiguration Cmdlet 的參數。

例如,下列命令會建立與 Microsoft.PowerShell 工作階段組態完全相同的會話組態,但會將從遠端命令接收的數據限製為 20 MB。 (預設值為 50 MB)。

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

另請參閱