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
的 Name 参数来仅获取名称以“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 获取完整的会话配置。 管道运算符将 Full 会话配置发送到 Format-List
cmdlet。 值为 *
(全部)的 Property 参数指示 Format-List
在列表中显示该对象的所有属性和值。
输出包括非常有用的信息,包括会话配置的作者、会话类型、语言模式和随此会话配置一起创建的会话执行策略、会话配额和会话配置文件的完整路径。
会话配置的此视图适用于包括会话配置文件的会话。 有关会话配置文件的详细信息,请参阅 about_Session_Configuration_Files。
示例 4 - 查看会话配置的另一种方法
此示例使用 WSMan: 提供程序驱动器中的 Get-ChildItem
cmdlet(别名为 dir
)来查看 Plugin 节点的内容。 这是在计算机上查看会话配置的另一种方式。
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 节点包含表示已注册的 PowerShell 会话配置的 ContainerElement 对象 (Microsoft.WSMan.Management.WSManConfigContainerElement),以及用于 WS-Management 的其他插件。
示例 6 - 查看远程计算机上的会话配置
本示例显示了如何使用 WSMan 提供程序在远程计算机上查看会话配置。 此方法不会提供像 Get-PSSessionConfiguration
命令那样多的信息,但用户无需是 Administrators 组的成员即可运行此 mdlet。
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 计算机上 Plugin 目录中的项。 这些项包括会话配置(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 计算机的 Service 节点中的 CredSSP 项的值更改为 True。 这会在远程计算机上配置服务设置。 Invoke-Command
cmdlet 在 Server02 计算机上运行 Get-PSSessionConfiguration
命令。 该命令使用 Credential 参数,并使用值为 CredSSP 的 Authentication 参数。 输出显示 Server02 远程计算机上的会话配置。
示例 8 - 获取会话配置的资源 URI
此示例对设置 $PSSessionConfigurationName
首选项变量(采用资源 URI)的值很有用。
(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。
若要查看计算机上的会话配置,你必须是计算机上 Administrators 组的成员。
若要在远程计算机上运行
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: 驱动器。
相关链接
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- New-PSSessionConfigurationFile
- New-PSSessionOption
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Test-PSSessionConfigurationFile
- Unregister-PSSessionConfiguration
- WSMan 提供程序
- about_Session_Configurations
- about_Session_Configuration_Files