阻止计算机接收远程 Windows PowerShell 命令。
语法
Disable-PSRemoting [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
说明
Disable-PSRemoting 函数通过向本地计算机上所有会话配置的安全描述符中添加“全部拒绝”条目,禁用这些会话配置。这将阻止本地计算机接收远程命令。
Disable-PSRemoting 不会停止 WinRM 服务,也不会阻止本地计算机用户建立连接到远程计算机或向其他计算机发送命令的会话。
若要重新启用这些会话配置,请使用 Enable-PSRemoting 或 Enable-PSSessionConfiguration cmdlet。
若要在 Windows Vista、Windows Server 2008 以及更高版本的 Windows 上运行此函数,您必须使用“以管理员身份运行”选项打开 Windows PowerShell。
参数
-Force
禁止显示所有用户提示。默认情况下,提示您确认每个操作。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Confirm
在执行命令之前提示您进行确认。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-WhatIf
描述如果执行该命令会发生什么情况(无需实际执行该命令)。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
None 不能通过管道将输入传递给此 cmdlet。 |
输出 |
None 此 cmdlet 不返回任何对象。 |
说明
会话配置是一组用于定义会话环境的设置。这些会话配置位于远程计算机上,供连接到该计算机的本地和远程会话使用。
连接到该计算机的每个会话必须使用在该计算机上注册的某一会话配置。这包括使用 New-PSSession 或 Enter-PSSession cmdlet 创建的持续性会话,以及在使用采用 WS-Management 远程处理技术的 cmdlet(如 Invoke-Command)的 ComputerName 参数时 Windows PowerShell 创建的临时会话。通过拒绝访问所有会话配置,可以有效地阻止所有用户建立连接到该计算机的会话。
Disable-PSRemoting 与“Disable-PSSessionConfiguration -name *”等效。
示例 1
C:\PS>disable-psremoting 说明 ----------- 此命令禁用计算机上的所有会话配置。
示例 2
C:\PS>disable-psremoting -force 说明 ----------- 此命令禁用计算机上的所有会话配置并且不显示提示。
示例 3
C:\PS>disable-psremoting -force C:\PS> new-pssession -computername localhost [localhost] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Remote_Troub leshooting Help topic. + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed C:\PS> new-pssession -computername Server01 Id Name ComputerName State Configuration Availability -- ---- ------------ ----- ------------- ------------ 1 Session1 Server01... Opened Microsoft.PowerShell Available C:\PS> enable-pssessionConfiguration -name * -force C:\PS> new-pssession -computername localhost Id Name ComputerName State Configuration Availability -- ---- ------------ ----- ------------- ------------ 1 Session1 localhost Opened Microsoft.PowerShell Available 说明 ----------- 此示例说明使用 Disable-PSRemoting 的效果。 第一条命令使用 Disable-PSRemoting 禁用本地计算机上的所有已注册会话配置。 第二条命令使用 New-PSSession 创建一个与本地计算机的远程会话(也称为“环回”)。由于该会话所需的会话配置被禁用,因此该命令将失败。 第三条命令使用 New-PSSession cmdlet 创建一个从本地计算机到 Server01 远程计算机的会话。此命令使用远程计算机上的会话配置,因此将会成功。 第四条命令使用 Enable-PSSessionConfiguration cmdlet 重新启用本地计算机上的所有会话配置。该命令对 Name 参数使用值 *(全部)。 第五条命令使用 New-PSSession cmdlet 重新尝试建立环回会话。这次该命令将会成功,因为所需的会话配置已启用。
示例 4
C:\PS>disable-psremoting -force C:\PS> get-psSessionConfiguration | format-table -property name, permission -auto Name Permission ---- ---------- microsoft.powershell Everyone AccessDenied, BUILTIN\Administrators AccessAllowed microsoft.powershell32 Everyone AccessDenied, BUILTIN\Administrators AccessAllowed C:\PS> enable-psremoting -force WinRM already is set up to receive requests on this machine. WinRM already is set up for remote management on this machine. C:\PS>> Get-PSSessionConfiguration | ft name, Permission -auto Name Permission ---- ---------- microsoft.powershell BUILTIN\Administrators AccessAllowed microsoft.powershell32 BUILTIN\Administrators AccessAllowed 说明 ----------- 此示例说明对会话配置使用 Disable-PSRemoting 和 Enable-PSRemoting 的效果。 第一条命令使用 Disable-PSRemoting 函数禁用所有已注册的会话配置。Force 参数用于禁止显示所有用户提示。 第二条命令使用 Get-PSSessionConfiguration cmdlet 显示计算机上的已注册会话配置。该命令使用管道运算符将结果发送给 Format-Table 命令,后者将在表中只显示这些配置的 Name 和 Permission 属性。 所得的表显示拒绝所有用户对这些配置的权限。 第三条命令使用 Enable-PSRemoting cmdlet 重新启用计算机上的所有会话配置。也可以使用“Enable-PsSessionConfiguration -name *”命令。该命令使用 Force 参数禁止显示所有用户提示,并重新启动 WinRM 服务而不显示提示。 第四条命令使用 Get-PSSessionConfiguration 和 Format-Table 显示会话配置的名称和权限。结果显示此时 Administrators 组的成员可以访问这些会话配置。
另请参阅