主题 about_Session_Configurations 简短说明 描述确定可远程连接到计算机的用户及其可运行的命令的会话配置。 详细说明 会话配置是本地计算机上的一组设置,这些设置为远程用户连接到本地计算机时创建的 Windows PowerShell 会话定义环境。 计算机管理员可以使用会话配置以保护计算机,并为连接到计算机的用户定义自定义环境。 管理员还可以使用会话配置来确定远程连接到计算机所需的权限。默认情况下,仅 Administrators 组的成员有 权使用会话配置进行远程连接,但您可以更改默认设置以允许所有用户或所选用户远程连接到您的计算机。 会话配置是一种基于“用于管理的 Web 服务”(WS 管理)的 Windows PowerShell 远程处理功能。仅当使用 New- PSSession、Invoke-Command 或 Enter-PSSession cmdlet 连接到远程计算机时,才使用会话配置。 注意:要在运行 Windows Vista、Windows Server 2008 或更高版本 Windows 的计算机上管理会话配置, 请使用"以管理员身份运行"选项启动 Windows PowerShell。 关于会话配置 每个 Windows PowerShell 会话都使用一个会话配置。这包括使用 New-PSSession 或 Enter-PSSession cmdlet 创建的永久会话,以及在您使用采用 WS-Management 远程处理技术的 cmdlet (如 Invoke-Command)的 ComputerName 参数时 Windows PowerShell 创建的临时会话。 管理员可以使用会话配置以保护计算机资源,并为连接到计算机的用户创建自定义环境。例如, 您可以使用会话配置来限制计算机在会话中接收的对象大小,定义会话的语言模式以及指定会话中 可用的 cmdlet、提供程序和函数。 通过配置会话配置的安全描述符,您可以确定可使用会话配置连接到计算机的用户。用户必须具有 会话配置的"执行"权限,才能在会话中使用会话配置。 如果用户没有使用计算机上任何会话配置所需的权限,他们就不能远程连接到计算机。默认情况下, 仅计算机管理员有权使用默认会话配置,但您可以更改安全描述符以允许所有用户或所选用户在您的 计算机上使用会话配置,或者不允许任何用户执行此操作。 默认会话配置。 Windows PowerShell 提供一种名为 Microsoft.PowerShell 的内置会话配置。在运行 64 位版本 Windows 的计算机上,Windows PowerShell 还提供一种 32 位会话配置 Microsoft.PowerShell32。 这些会话配置默认用于会话,即当创建会话的命令不包含 New-PSSession、Enter-PSSession 或 Invoke- Command cmdlet 的 ConfigurationName 参数时应用。 默认会话配置的安全描述符只允许本地计算机上 Administrators 组的成员使用这些会话配置。因此,除非您更 改默认设置,否则只有 Administrators 组的成员才能远程连接到计算机。 可以使用 $PSSessionConfigurationName 首选项变量更改默认会话配置。有关详细信息,请参阅 about_Preference_Variables。 查看本地计算机上的会话配置 要获取本地计算机上的会话配置,请使用 Get-PSSessionConfiguration cmdlet。 例如,键入: C:\PS> get-pssessionconfiguration | format-list -property name, permission Name : microsoft.powershell Permission : BUILTIN\Administrators AccessAllowed Name : microsoft.powershell32 Permission : BUILTIN\Administrators AccessAllowed 还可以在 Windows PowerShell 中使用 WS-Management 提供程序查看会话配置。WS-Management 提供程 序会在您的会话中创建一个 WSMAN: 驱动器。 在 WSMAN: 驱动器中,会话配置位于 Plugin 节点中。(所有会话配置都位于 Plugin 节点中,但该节点中也包 含其他非会话配置项。) 例如,要查看本地计算机上的会话配置,请键入: C:\PS> dir wsman:\localhost\plugin\microsoft* WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell} 查看远程计算机上的会话配置 要查看远程计算机上的会话配置,请使用 Connect-WSMan cmdlet 在本地计算机上的 WSMan: 驱动器中为远程计算机添加一个节点,然后使用 WSMan: 驱动器查看会话配置。 例如,以下命令在本地计算机上的 WSMAN: 驱动器中为远程计算机 Server01 添加一个节点。 C:\PS> connect-wsman server01.corp.fabrikam.com 此命令执行完后,您可以导航到 Server01 计算机的节点,然后查看会话配置。 例如: C:\PS> 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 Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell32} 更改会话配置的安全描述符 默认情况下,计算机上 Administrators 组的成员具有默认会话配置的"执行"权限, 但您可以更改默认会话配置及任何自建会话配置上的安全描述符。 要向其他用户赋予远程连接到计算机的权限,请使用 Set-PSSessionConfiguration cmdlet 将这些用户的 "执行"权限添加到 Microsoft.PowerShell 和 Microsoft.Powershell32 会话配置的安全描述符。 例如,以下命令将打开一个属性页,您可以在其中更改 Microsoft.PowerShell 默认会话配置的安全描述符。 C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecurityDescriptorUI 要拒绝所有用户对计算机上所有会话配置的权限,请使用 Disable-PSRemoting 函数或 Disable- PSSessionConfiguration cmdlet。例如,以下命令可以将"全部拒绝"条目添加到计算机上的所有会话配置。 C:\PS> disable-psremoting 要将"全部拒绝"条目添加到特定会话配置,请使用 Disable-PSSessionConfiguration cmdlet。例如,以 下命令可以将"全部拒绝"条目添加到 Microsoft.PowerShell 会话配置。 C:\PS> disable-pssessionConfiguration -name Microsoft.PowerShell 要从所有会话配置中删除"全部拒绝"条目,请使用 Enable-PSRemoting 或 Enable- PSSessionConfiguration cmdlet。例如,以下命令可以从默认会话配置中删除"全部拒绝"条目。 C:\PS> enable-pssessionConfiguration -name Microsoft.Power* 要对会话配置的安全描述符进行其他更改,请使用 Set-PSSessionConfiguration cmdlet。可以使用 SecurityDescriptorSDDL 参数提交一个 SDDL 字符串值。可以使用 ShowSecurityDescriptorUI 参数显 示一个用户界面属性表,您可以借助该属性表创建新的 SDDL。 例如: C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecurityDescriptorUI 创建新会话配置 要在本地计算机上创建新会话配置,请使用 Register-PSSessionConfiguration cmdlet。要定义新会话配 置,可以使用 C# 程序集、Window PowerShell 脚本和 Register-PSSessionConfiguration cmdlet 的参数。 例如,以下命令可以创建一种与 Microsoft.PowerShell 会话配置基本相同的会话配置,唯一区别是该会话配置 会将从远程命令接收的数据限制在 20 MB(默认值是 50 MB)。 c:\PS> register-psSessionConfiguration -name NewConfig --MaximumReceivedDataSizePerCommandMB 20 在创建会话配置时,可以使用其他会话配置 cmdlet 管理该会话配置,该会话配置将显示在 WSMan: 驱动器中。 有关详细信息,请参阅 Register-PSSessionConfiguration。 删除会话配置 要从本地计算机中删除会话配置,请使用 Unregister-PSSessionConfiguration cmdlet。例如,以下命令 可以从计算机中删除 NewConfig 会话配置。 c:\PS> unregister-psSessionConfiguration -name NewConfig 有关详细信息,请参阅 Unregister-PSSessionConfiguration。 选择会话配置 要为会话选择特定的会话配置,请使用 New-PSSession、Enter-PSSession 或 Invoke-Command 的 ConfigurationName 参数。 例如,以下命令使用 New-PSSession cmdlet 启动 Server01 计算机上的 PSSession。该命令使用 ConfigurationName 参数选择 Server01 计算机上的 WithProfile 配置。 C:\PS> new-pssession -computername Server01 -configurationName WithProfile 仅在当前用户有权使用 WithProfile 会话配置或者可提供具有所需权限的用户凭据时,才能成功执行此命令。 您还可以使用 $PSSessionConfigurationName 首选项变量更改计算机上的默认会话配置。有关 $PSSessionConfigurationName 首选项变量的详细信息,请参阅 about_Preference_Variables。 另请参阅 about_Preference_Variables about_PSSession about_Remote New-PSSession Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration