Compartilhar via


Disable-PSRemoting

Impede que os pontos de extremidade do PowerShell recebam conexões remotas.

Sintaxe

Default (Default)

Disable-PSRemoting
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet Disable-PSRemoting 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 habilitar novamente o acesso remoto a todas as configurações de sessão, use o cmdlet Enable-PSRemoting. 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 parâmetro AccessMode do cmdlet Set-PSSessionConfiguration. Você também pode usar os cmdlets Enable-PSSessionConfiguration e Disable-PSSessionConfiguration para habilitar e desabilitar as configurações de sessão para todos os usuários. Para obter mais informações sobre configurações de sessão, consulte about_Session_Configurations.

Observação

Mesmo depois de executar Disable-PSRemoting você ainda pode fazer conexões de loopback no computador local. Uma conexão de loopback é uma sessão remota do PowerShell que se origina e se conecta ao mesmo computador local. 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 solicitação.

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 cmdlet Disable-PSRemoting. 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 cmdlet New-PSSession tenta criar uma sessão remota para o computador local (também conhecido 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 cmdlets Disable-PSRemoting 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 cmdlets Get-PSSessionConfiguration 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 de 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 cmdlet Enable-PSRemoting 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 solicitar. 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 ponto de extremidade de sessão desabilitadas

Este exemplo demonstra como as configurações de ponto de extremidade são desabilitadas e mostra como fazer uma conexão de loopback bem-sucedida com um ponto de extremidade 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 o Access é negado erro.

O segundo uso de New-PSSession também tenta criar uma sessão remota para o computador 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 documento New-PSSession.

Exemplo 6: impedir o acesso remoto às configurações de sessão que têm descritores de segurança personalizados

Este exemplo demonstra que o cmdlet Disable-PSRemoting desabilita o 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 de sessão de Teste de. 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 personalizadas de acesso completo para o usuário indicado.

Os cmdlets Get-PSSessionConfiguration e Format-Table exibem as configurações de sessão e suas propriedades. A saída mostra que a configuração da sessão teste de permite acesso interativo e permissões especiais para o usuário indicado.

Disable-PSRemoting desabilita 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 Get-PSSessionConfiguration e Format-Table mostram que um descritor de segurança AccessDenied para todos os usuários de rede é adicionado a todas as configurações de sessão, incluindo a configuração de sessão Test. 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 de sessão de Test.

Exemplo 7: habilitar novamente o acesso remoto às configurações de sessão selecionadas

Este exemplo mostra como reabilitar o acesso remoto somente às configurações de sessão selecionadas. Depois de desabilitar todas as configurações de sessão, reabilitamos uma sessão específica.

O cmdlet Set-PSSessionConfiguration é usado para alterar o microsoft. ServerManager configuração de sessão. O parâmetro AccessMode com um valor de remote habilita novamente 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.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Force

Força o comando a ser executado sem solicitar a confirmação do usuário.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Não é possível transferir 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 cmdlets Enable-PSRemoting ou Enable-PSSessionConfiguration. Talvez seja necessário desfazer as alterações a seguir manualmente.

    1. Pare e desabilite o serviço WinRM.
    2. Exclua o ouvinte que aceita solicitações em qualquer endereço IP.
    3. Desabilite as exceções de firewall para comunicações WS-Management.
    4. Restaure o valor de LocalAccountTokenFilterPolicy para 0, o que restringe o acesso remoto aos membros do grupo Administradores no computador.

    Uma configuração de sessão é um grupo de configurações que define 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. Ao negar acesso remoto a todas as configurações de sessão, você efetivamente impede que usuários remotos estabeleçam sessões que se conectam 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 para o 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 os 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 é equivalente a Disable-PSSessionConfiguration -Name *. No Windows PowerShell 3.0 e versões posteriores, Disable-PSRemoting é equivalente a Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local