Unregister-PSSessionConfiguration

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

语法

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

说明

此 cmdlet 仅在 Windows 平台上可用。

Unregister-PSSessionConfiguration cmdlet 从计算机中删除已注册的会话配置。 此 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 (http://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-PSSessionConfiguration 删除 MaintenanceShell 会话配置。 但是,因为该命令使用 NoServiceRestart 参数,因此不重新启动 WinRM 服务,而且更改尚未完全有效。

接下来,Get-PSSessionConfiguration 会尝试获取 MaintenanceShell 会话。 已从 WS-Management 资源表中删除该会话,因此 Get-PSSessionConfiguration 不能将其返回。

New-PSSession cmdlet 使用 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

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

输出

None

此 cmdlet 不返回任何输出。

备注

此 cmdlet 仅在 Windows 平台上可用。

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