Unregister-PSSessionConfiguration

从计算机中删除已注册的会话配置。

语法

Unregister-PSSessionConfiguration
          [-Name] <String>
          [-Force]
          [-NoServiceRestart]
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]

说明

cmdlet Unregister-PSSessionConfiguration 从计算机中删除已注册的会话配置。 此 cmdlet 专为系统管理员设计,用于管理用户的自定义会话配置。

若要使更改生效, Unregister-PSSessionConfiguration 请重启 WinRM 服务。 若要防止重启,请指定 NoServiceRestart 参数。

如果意外删除了默认 的 Microsoft.PowerShellMicrosoft.PowerShell32 会话配置,请使用 Enable-PSRemoting cmdlet 还原它们。 有关详细信息,请参阅 about_Session_Configurations

示例

示例 1:删除会话配置

此示例从计算机中删除 MaintenanceShell 会话配置。

Unregister-PSSessionConfiguration -Name "MaintenanceShell"

示例 2:删除会话配置并重启 WinRM 服务

在此示例中,我们将删除 MaintenanceShell 配置并重启 WinRM 服务。 Force 参数禁止所有用户消息,以在不提示的情况下重启 WinRM 服务。

Unregister-PSSessionConfiguration -Name MaintenanceShell -Force

示例 3:删除所有会话配置

此示例演示了删除计算机上所有会话配置的两种方法。 这两个命令具有相同的效果,可以互换使用。

Unregister-PSSessionConfiguration -Name *
Get-PSSessionConfiguration -Name * | Unregister-PSSessionConfiguration

示例 4:注销(不重启)

此示例演示了使用 NoServiceRestart 参数防止服务重启会中断计算机上的任何会话的效果。

PS> Unregister-PSSessionConfiguration -Name "MaintenanceShell" -NoServiceRestart
PS> Get-PSSessionConfiguration -Name "MaintenanceShell"

Get-PSSessionConfiguration -Name MaintenanceShell : No Session Configuration matches criteria "MaintenanceShell".
+ CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

PS> New-PSSession -ConfigurationName "MaintenanceShell"

Id Name      ComputerName    State    Configuration         Availability
-- ----      ------------    -----    -------------         ------------
1 Session1  localhost       Opened   MaintenanceShell      Available

PS> Restart-Service winrm
PS> New-PSSession -ConfigurationName MaintenanceShell

[localhost] Connecting to remote server failed with the following error message :
 The WS-Management service cannot process the request.
 The resource URI (https://schemas.microsoft.com/powershell/MaintenanceShell) was not found in the WS-Management catalog.
 The catalog contains the metadata that describes resources, or logical endpoints.
 For more information, see the about_Remote_Troubleshooting Help topic.
 + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
 + FullyQualifiedErrorId : PSSessionOpenFailed

删除 Unregister-PSSessionConfigurationMaintenanceShell 会话配置。 但是,因为该命令使用 NoServiceRestart 参数,所以不会重启 WinRM 服务,而且更改尚未完全起效。

接下来,尝试 Get-PSSessionConfiguration 获取 MaintenanceShell 会话。 由于会话已从 WS-Management 资源表中删除, Get-PSSessionConfiguration 因此无法返回它。

cmdlet New-PSSession 使用 MaintenanceShell 配置创建会话。 该命令执行成功。 接下来,重启 WinRM 服务。

最后, New-PSSession 该 cmdlet 尝试创建使用 MaintenanceShell 配置的会话。 这一次,会话失败,因为 WinRM 服务重启时删除了 MaintenanceShell 配置。

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

指示 cmdlet 不提示进行确认,并且将在无提示的情况下重启 WinRM 服务。 重新启动服务可使配置更改生效。

若要阻止重新启动并取消重新启动提示,请使用 NoServiceRestart 参数。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

指定要删除的会话配置的名称。 输入一个会话配置名称或配置名称模式。 允许使用通配符。 此参数是必需的。

还可以通过管道将会话配置传递给 Unregister-PSSessionConfiguration

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoServiceRestart

指示此 cmdlet 不重启 WinRM 服务,并且禁止提示重启该服务。

默认情况下,运行 Unregister-PSSessionConfiguration 命令时,系统会提示重启 WinRM 服务以使更改生效。 在 重新启动 WinRM 服务之前,用户仍然可以使用未注册的会话配置,即使 Get-PSSessionConfiguration 找不到它。

若要在无提示的情况下重启 WinRM 服务,请指定 Force 参数。 若要手动重启 WinRM 服务,请使用 Restart-Service cmdlet。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

Microsoft.PowerShell.Commands.PSSessionConfigurationCommands

可以通过管道将会话配置对象从 Get-PSSessionConfiguration 传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何对象。

备注

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