Get-PSSessionConfiguration

获取计算机上已注册的会话配置。

语法

Get-PSSessionConfiguration
   [[-Name] <String[]>]
   [-Force]
   [<CommonParameters>]

说明

Get-PSSessionConfiguration cmdlet 获取在本地计算机上注册的会话配置。 这是一个高级 cmdlet,旨在由系统管理员用来管理其用户的自定义会话配置。

从 PowerShell 3.0 开始,可以使用会话配置 (.pssc) 文件定义会话配置的属性。 借助此功能,无需编写计算机程序即可创建自定义和受限会话。 有关会话配置文件的详细信息,请参阅 about_Session_Configuration_Files

此外,从 PowerShell 3.0 开始,新的注释属性已添加到 Get-PSSessionConfiguration 返回的会话配置对象。 通过这些属性,用户和会话配置作者可以更轻松地检查和比较会话配置。

若要创建和注册会话配置,请使用 Register-PSSessionConfiguration cmdlet。 有关会话配置的详细信息,请参阅 about_Session_Configurations

示例

示例 1 - 在本地计算机上获取会话配置

Get-PSSessionConfiguration

示例 2 - 获取两个默认会话配置

该命令使用 Get-PSSessionConfiguration 参数来仅获取名称以“Microsoft”开头的会话配置。

Get-PSSessionConfiguration -Name Microsoft*

Name                      PSVersion  StartupScript        Permission
----                      ---------  -------------        ----------
microsoft.powershell      5.1                             BUILTIN\Administrators AccessAll...
microsoft.powershell32    5.1                             BUILTIN\Administrators AccessAll...

示例 3 - 获取会话配置的属性和值

此示例显示使用会话配置文件创建的会话配置的属性和属性值。

Get-PSSessionConfiguration -Name Full  | Format-List -Property *

Copyright                     : (c) 2011 User01. All rights reserved.
AliasDefinitions              : {System.Collections.Hashtable}
SessionType                   : Default
CompanyName                   : Unknown
GUID                          : 1e9cb265-dae0-4bd3-89a9-8338a47698a1
Author                        : User01
ExecutionPolicy               : Restricted
SchemaVersion                 : 1.0.0.0
LanguageMode                  : FullLanguage
Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : http://schemas.microsoft.com/powershell/Full
MaxConcurrentCommandsPerShell : 1500
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 10
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
configfilepath                : C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\Full_1e9cb265-dae0-4bd3-89a9-8338a47698a1.pssc
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
MaxShells                     : 300
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 43200000
SDKVersion                    : 1
Name                          : Full
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 25
Enabled                       : True
MaxShellsPerUser              : 30
Permission                    :

此示例使用 Get-PSSessionConfiguration cmdlet 获取完整的会话配置。 管道操作员将完整会话配置发送到 Format-List cmdlet。 值为 (全部)的 Property* 参数指示 Format-List 在列表中显示该对象的所有属性和值。

输出包括有用的信息,包括会话配置的作者、会话类型、语言模式和执行策略,这些会话是使用此会话配置创建的会话、会话配额以及会话配置文件的完整路径。

此会话配置的视图用于包含会话配置文件的会话。 有关会话配置文件的详细信息,请参阅 about_Session_Configuration_Files

示例 4 - 查看会话配置的另一种方法

此示例使用 WSMan:提供程序驱动器中的 Get-ChildItem cmdlet(别名 dir)来查看插件节点的内容。 这是查看计算机上的会话配置的另一种方法。

dir wsman:\localhost\plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=Event Forwarding Plugin}      Event Forwarding Plugin
Container       {Name=Full}                         Full
Container       {Name=microsoft.powershell}         microsoft.powershell
Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
Container       {Name=microsoft.powershell32}       microsoft.powershell32
Container       {Name=microsoft.ServerManager}      microsoft.ServerManager
Container       {Name=WMI Provider}                 WMI Provider

PlugIn 节点包含 ContainerElement 对象(Microsoft.WSMan.Management.WSManConfigContainerElement),这些对象代表已注册的 PowerShell 会话配置,以及 WS-Management 的其他插件。

示例 6 - 查看远程计算机上的会话配置

此示例演示如何使用 WSMan 提供程序查看远程计算机上的会话配置。 此方法不提供与 Get-PSSessionConfiguration 命令相同的信息,但用户不需要是管理员组的成员才能运行此 cmdlet。

Connect-WSMan -ComputerName Server01
dir WSMan:\Server01\Plugin

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=Empty}                        Empty
Container       {Name=Event Forwarding Plugin}      Event Forwarding Plugin
Container       {Name=Full}                         Full
Container       {Name=microsoft.powershell}         microsoft.powershell
Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
Container       {Name=microsoft.powershell32}       microsoft.powershell32
Container       {Name=microsoft.ServerManager}      microsoft.ServerManager
Container       {Name=NoLanguage}                   NoLanguage
Container       {Name=RestrictedLang}               RestrictedLang
Container       {Name=RRS}                          RRS
Container       {Name=SEL Plugin}                   SEL Plugin
Container       {Name=WithProfile}                  WithProfile
Container       {Name=WMI Provider}                 WMI Provider

Connect-WSMan cmdlet 连接到 Server01 远程计算机上的 WinRM 服务。 WSMan: 驱动器的 Get-ChildItem cmdlet(别名为 dir)获取 Server01\Plugin 路径中的项。 输出显示 Server01 计算机上的插件目录中的项。 这些项包括会话配置,这些配置是 WSMan 插件的类型,以及计算机上的其他类型的插件。

示例 7 - 从远程计算机获取详细的会话配置

此示例演示如何在远程计算机上运行 Get-PSSessionConfiguration 命令。 该命令要求在本地计算机上的客户端设置和远程计算机上的服务设置中启用 CredSSP 委派。

若要运行此示例中的命令,你必须是本地和远程计算机上的 Administrators 组的成员,并且必须使用 以管理员身份运行 选项启动 PowerShell。

Enable-WSManCredSSP -Delegate Server02
Connect-WSMan Server02
Set-Item WSMan:\Server02*\Service\Auth\CredSSP -Value $true
Invoke-Command -ScriptBlock {Get-PSSessionConfiguration} -ComputerName Server02 -Authentication CredSSP -Credential Domain01\Admin01

Name                      PSVersion  StartupScript        Permission                          PSComputerName
----                      ---------  -------------        ----------                          --------------
microsoft.powershell      5.1                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
microsoft.powershell32    5.1                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
MyX86Shell                5.1        c:\test\x86Shell.ps1 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com

Enable-WSManCredSSP cmdlet 在 Server01(本地计算机)上启用 CredSSP 委派。 Connect-WSMan cmdlet 连接到 Server02 计算机。 此操作将 Server02 的节点添加到本地计算机上的 WSMan:驱动器,使你能够查看和更改 Server02 计算机上的 WS-Management 设置。 Set-Item cmdlet 将 Server02 计算机的服务节点中 CredSSP 项的值更改为 True。 这会在远程计算机上配置服务设置。 Invoke-Command cmdlet 在 Server02 计算机上运行Get-PSSessionConfiguration 命令。 该命令使用 Credential 参数,并使用 身份验证 参数,其值为 CredSSP。 输出显示 Server02 远程计算机上的会话配置。

示例 8 - 获取会话配置的资源 URI

此示例可用于设置采用资源 URI 的 $PSSessionConfigurationName 首选项变量的值。

(Get-PSSessionConfiguration -Name CustomShell).resourceURI

http://schemas.microsoft.com/powershell/microsoft.CustomShell

$PSSessionConfigurationName 变量指定创建会话时使用的默认配置。 此变量在本地计算机上设置,但它指定远程计算机上的配置。 有关 $PSSessionConfiguration 变量的详细信息,请参阅 about_Preference_Variables

参数

-Force

如果服务尚未运行,则禁止提示重启 WinRM 服务。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Name

仅获取具有指定名称或名称模式的会话配置。 输入一个或多个会话配置名称。 允许使用通配符。

类型:String[]
Position:0
默认值:All session configurations on the local computer
必需:False
接受管道输入:False
接受通配符:True

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

Microsoft.PowerShell.Commands.PSSessionConfigurationCommands

备注

  • 若要运行此 cmdlet,请使用“以管理员身份运行”选项启动 PowerShell。

  • 若要查看计算机上的会话配置,您必须是计算机上的管理员组的成员。

  • 若要在远程计算机上运行 Get-PSSessionConfiguration 命令,必须在本地计算机上的客户端设置(通过使用 Enable-WSManCredSSP cmdlet)和远程计算机上的服务设置中启用凭据安全服务提供程序(CredSSP)身份验证。 此外,在建立远程会话时,必须使用 Authentication 参数的 CredSSP 值。 否则,将拒绝访问。

  • 只有当对象有值时,Get-PSSessionConfiguration 返回的对象的注释属性才会出现在对象上。 只有使用会话配置文件创建的会话配置具有所有定义的属性。

  • 会话配置对象的属性因为会话配置设置的选项以及这些选项的值而有所不同。 此外,使用会话配置文件的会话配置具有其他属性。

  • 可以使用 WSMan:驱动器中的命令来更改会话配置的属性。 但是,不能使用 PowerShell 2.0 中的 WSMan: 驱动器来更改在 PowerShell 3.0 中引入的会话配置属性,例如 OutputBufferingMode。 PowerShell 2.0 命令不会生成错误,但它们无效。 若要更改 PowerShell 3.0 中引入的属性,请使用 PowerShell 3.0 中的 WSMan:驱动器。