Disable-PSRemoting
Impede que os pontos de extremidade do PowerShell recebam conexões remotas.
Sintaxe
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O Disable-PSRemoting
cmdlet bloqueia o acesso remoto a todas as configurações de ponto de extremidade de sessão do Windows PowerShell no computador local. Isso inclui todos os pontos de extremidade criados pelo PowerShell 6 ou superior.
Para reabilitar o acesso remoto a todas as configurações de sessão, use o Enable-PSRemoting
cmdlet. Isso inclui todos os pontos de extremidade criados pelo PowerShell 6 ou superior. Para habilitar o acesso remoto às configurações de sessão selecionadas, use o Set-PSSessionConfiguration
parâmetro AccessMode do cmdlet.
Você também pode usar os Enable-PSSessionConfiguration
cmdlets and Disable-PSSessionConfiguration
para habilitar e desabilitar as configurações de sessão para todos os usuários. Para saber mais sobre configurações de sessão, confira about_Session_Configurations.
Observação
Mesmo após a execução Disable-PSRemoting
, você ainda pode fazer conexões de loopback na máquina local. Uma conexão de loopback é uma sessão remota do PowerShell que se origina e se conecta ao mesmo computador local. As sessões remotas de fontes externas permanecem bloqueadas. Para conexões de loopback, você deve usar credenciais implícitas ao longo do parâmetro EnableNetworkAccess . Para obter mais informações sobre conexões de loopback, consulte New-PSSession.
Para executar esse cmdlet, inicie o Windows PowerShell com a opção Executar como administrador .
Exemplos
Exemplo 1: Impedir o acesso remoto a todas as configurações de sessão
Este exemplo impede o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell no computador.
Disable-PSRemoting
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these
steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
Exemplo 2: impedir o acesso remoto a todas as configurações de sessão sem prompt de confirmação
Este exemplo impede o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell no computador sem avisar.
Disable-PSRemoting -Force
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these
steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
Exemplo 3: Efeitos da execução deste cmdlet
Este exemplo mostra o efeito do uso do Disable-PSRemoting
cmdlet. Para executar essa sequência de comandos, inicie o PowerShell com a opção Executar como administrador .
Depois de desabilitar as configurações de sessões, o New-PSSession
cmdlet tenta criar uma sessão remota para o computador local (também conhecida como "loopback"). Como o acesso remoto está desabilitado no computador local, o comando falha.
Disable-PSRemoting -Force
New-PSSession -ComputerName localhost
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
New-PSSession : [localhost] Connecting to remote server localhost failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
[New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
Exemplo 4: Efeitos da execução deste cmdlet e Enable-PSRemoting
Este exemplo mostra o efeito nas configurações de sessão do uso dos Disable-PSRemoting
cmdlets e Enable-PSRemoting
.
Disable-PSRemoting
é usado para desabilitar o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell. O parâmetro Force suprime todos os prompts do usuário. Os Get-PSSessionConfiguration
cmdlets e Format-Table
exibem as configurações de sessão no computador.
A saída mostra que todos os usuários remotos com um token de rede têm acesso negado às configurações de ponto de extremidade. O grupo de administradores no computador local tem permissão para acessar as configurações do ponto de extremidade, desde que estejam se conectando localmente (também conhecido como loopback) e usando credenciais implícitas.
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile BUILTIN\Administrators AccessAllowed
O Enable-PSRemoting
cmdlet habilita novamente o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell no computador. O parâmetro Force suprime todos os prompts do usuário e reinicia o serviço WinRM sem avisar. A nova saída mostra que os descritores de segurança AccessDenied foram removidos de todas as configurações de sessão.
Exemplo 5: conexões de loopback com configurações de endpoint de sessão desabilitadas
Este exemplo demonstra como as configurações de endpoint são desabilitadas e mostra como fazer uma conexão de loopback bem-sucedida com um endpoint desabilitado. Disable-PSRemoting
desabilita todas as configurações de ponto de extremidade de sessão do PowerShell.
Disable-PSRemoting -Force
New-PSSession -ComputerName localhost
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
New-PSSession : [localhost] Connecting to remote server localhost failed with the following error message : Access is
denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
gTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
New-PSSession -ComputerName localhost -EnableNetworkAccess
Id Name Transport ComputerName ComputerType State ConfigurationName Availability
-- ---- --------- ------------ ------------ ----- ----------------- ------------
1 Runspace1 WSMan localhost RemoteMachine Opened powershell.6 Available
O primeiro uso de New-PSSession
tenta criar uma sessão remota para o computador local. Esse tipo de conexão passa pela pilha de rede e não é um loopback. Consequentemente, a tentativa de conexão com o ponto de extremidade desabilitado falha com um erro Acesso negado .
O segundo uso de New-PSSession
também tenta criar uma sessão remota para a máquina local.
Nesse caso, ele é bem-sucedido porque é uma conexão de loopback que ignora a pilha de rede.
Uma conexão de loopback é criada quando as seguintes condições são atendidas:
- O nome do computador ao qual se conectar é 'localhost'.
- Nenhuma credencial é passada. O usuário conectado atual (credenciais implícitas) é usado para a conexão.
- O parâmetro de opção EnableNetworkAccess é usado.
Para obter mais informações sobre conexões de loopback, consulte o documento New-PSSession .
Exemplo 6: Impedir o acesso remoto a configurações de sessão que têm descritores de segurança personalizados
Este exemplo demonstra que o cmdlet desabilita o Disable-PSRemoting
acesso remoto a todas as configurações de sessão que incluem configurações de sessão com descritores de segurança personalizados.
Register-PSSessionConfiguration
cria a configuração da sessão de teste . O parâmetro FilePath especifica um arquivo de configuração de sessão que personaliza a sessão. O parâmetro ShowSecurityDescriptorUI exibe uma caixa de diálogo que define permissões para a configuração da sessão. Na caixa de diálogo Permissões, criamos permissões de acesso total personalizadas para o usuário indicado.
Os Get-PSSessionConfiguration
cmdlets e Format-Table
exibem as configurações de sessão e suas propriedades. A saída mostra que a configuração da sessão de teste permite acesso interativo e permissões especiais para o usuário indicado.
Disable-PSRemoting
Desativa o acesso remoto a todas as configurações de sessão.
Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
New-PSSession -ComputerName localhost -ConfigurationName Test
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed
[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
Agora, os cmdlets e Format-Table
mostram que um descritor de segurança AccessDenied para todos os usuários da rede é adicionado a todas as configurações de sessão, incluindo a configuração da sessão de teste.Get-PSSessionConfiguration
Embora os outros descritores de segurança não sejam alterados, o descritor de segurança "network_deny_all" tem precedência. Isso é ilustrado pela tentativa de usar New-PSSession
para se conectar à configuração da sessão de teste .
Exemplo 7: Reativar o acesso remoto às configurações de sessão selecionadas
Este exemplo mostra como reabilitar o acesso remoto apenas para as configurações de sessão selecionadas. Depois de desabilitar todas as configurações de sessão, reativamos uma sessão específica.
O Set-PSSessionConfiguration
cmdlet é usado para alterar o microsoft. Configuração de sessão do ServerManager . O parâmetro AccessMode com um valor de Remote reabilita o acesso remoto à configuração.
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
1. Stop and disable the WinRM service.
2. Delete the listener that accepts requests on any IP address.
3. Disable the firewall exceptions for WS-Management communications.
4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
members of the Administrators group on the computer.
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Parâmetros
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Force
Força o comando a ser executado sem solicitar a confirmação do usuário.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Você não pode canalizar objetos para esse cmdlet.
Saídas
None
Esse cmdlet não retorna nenhuma saída.
Observações
Desabilitar as configurações de sessão não desfaz todas as alterações feitas pelos
Enable-PSRemoting
cmdlets orEnable-PSSessionConfiguration
. Você talvez precise desfazer, manualmente, as alterações listadas a seguir.- Interrompa e desabilite o serviço WinRM.
- Exclua o ouvinte que aceita solicitações em qualquer endereço IP.
- Desabilite as exceções de firewall para comunicações do WS-Management.
- Restaure o valor de LocalAccountTokenFilterPolicy para 0, o que restringe o acesso remoto apenas a membros do grupo Administradores do computador.
Uma configuração de sessão é um grupo de configurações que definem o ambiente para uma sessão. Cada sessão que se conecta ao computador deve usar uma das configurações de sessão registradas no computador. Negando acesso remoto a todas as configurações de sessão, você impede efetivamente que usuários remotos estabeleçam sessões com conexão ao computador.
No Windows PowerShell 2.0,
Disable-PSRemoting
adiciona uma entrada Deny_All aos descritores de segurança de todas as configurações de sessão. Essa configuração impede que todos os usuários criem sessões gerenciadas pelo usuário no computador local. No Windows PowerShell 3.0,Disable-PSRemoting
adiciona uma entrada Network_Deny_All aos descritores de segurança de todas as configurações de sessão. Essa configuração impede que usuários em outros computadores criem sessões gerenciadas pelo usuário no computador local, mas permite que os usuários do computador local criem sessões de loopback gerenciadas pelo usuário.No Windows PowerShell 2.0,
Disable-PSRemoting
é o equivalenteDisable-PSSessionConfiguration -Name *
a . No Windows PowerShell 3.0 e versões posteriores,Disable-PSRemoting
é o equivalente aSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local