Disable-PSRemoting
Impede que os pontos de extremidade do PowerShell recebam conexões remotas.
Sintaxe
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Este cmdlet só está disponível na plataforma Windows.
O Disable-PSRemoting
cmdlet bloqueia o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell versão 6 e superior no computador local. Isso não afeta as configurações de ponto de extremidade do Windows PowerShell. Para desabilitar as configurações de ponto de extremidade de sessão do Windows PowerShell, execute Disable-PSRemoting
o comando de dentro de uma sessão do Windows PowerShell.
Para rehabilitar o acesso remoto a todas as configurações de ponto de extremidade de sessão do PowerShell versão 6 e superiores, use o Enable-PSRemoting
cmdlet. Para rehabilitar o acesso remoto a todas as configurações de ponto de extremidade de sessão do Windows PowerShell, execute Enable-PSRemoting
de dentro de uma sessão do Windows PowerShell.
Nota
Se quiser desabilitar todo o acesso remoto do PowerShell a uma máquina Windows local, execute esse comando a partir de uma sessão do PowerShell versão 6 ou superior e de uma sessão do Windows PowerShell. O Windows PowerShell é instalado em todas as máquinas Windows por padrão.
Para desabilitar e reativar o acesso remoto a configurações específicas de ponto de extremidade de sessão, use os Enable-PSSessionConfiguration
cmdlets e Disable-PSSessionConfiguration
. Para definir configurações de acesso específicas de pontos de extremidade individuais, use o Set-PSSessionConfiguration
cmdlet junto com o parâmetro AccessMode . Para obter mais informações sobre configurações de sessão, consulte about_Session_Configurations.
Nota
Mesmo depois de executar, 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 à mesma máquina 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.
Este cmdlet só está disponível na plataforma Windows. Ele não está disponível nas versões Linux ou macOS do PowerShell. Para executar esse cmdlet, inicie o PowerShell com a opção Executar como administrador .
Exemplos
Exemplo 1: Impedir o acesso remoto a todas as configurações de sessão do PowerShell
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: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 do PowerShell 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: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 conhecido como "loopback"). Como o acesso remoto está desabilitado na máquina local, o comando falha.
Disable-PSRemoting -Force
New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
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 acesso às 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
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
Name Permission
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
O Enable-PSRemoting
cmdlet reativa 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 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
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 -ComputerName localhost -ConfigurationName powershell.6 -Credential (Get-Credential)
PowerShell credential request
Enter your credentials.
User: UserName
Password for user UserName: ************
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.
New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -EnableNetworkAccess
Id Name Transport ComputerName ComputerType State ConfigurationName Availability
-- ---- --------- ------------ ------------ ----- ----------------- ------------
1 Runspace1 WSMan localhost RemoteMachine Opened powershell.6 Available
O primeiro uso de tentativas de New-PSSession
criar uma sessão remota para a máquina local. O parâmetro ConfigurationName é usado para especificar um ponto de extremidade do PowerShell desabilitado. As credenciais são passadas explicitamente para o comando por meio do parâmetro Credential . 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 de 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 Documento New-PSSession .
Exemplo 6: Desabilitando todas as configurações de ponto de extremidade remoto do PowerShell
Este exemplo demonstra como a execução do comando não afeta as configurações de ponto de extremidade do Disable-PSRemoting
Windows PowerShell. Get-PSSessionConfiguration
executar no Windows PowerShell mostra todas as configurações de ponto de extremidade. Vemos que as configurações de ponto de extremidade do Windows PowerShell não estão desabilitadas.
Disable-PSRemoting -Force
powershell.exe -command 'Get-PSSessionConfiguration'
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 : microsoft.powershell
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
Management Users AccessAllowed
Name : microsoft.powershell.workflow
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell32
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
Management Users AccessAllowed
Name : PowerShell.6
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6.2.2
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
powershell.exe -command 'Disable-PSRemoting -Force'
powershell.exe -command 'Get-PSSessionConfiguration'
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 : microsoft.powershell
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell.workflow
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management
Users AccessAllowed
Name : microsoft.powershell32
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6.2.2
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Para desabilitar essas configurações de ponto de extremidade, o comando deve ser executado de Disable-PSRemoting
dentro de uma sessão do Windows PowerShell. Agora, Get-PSSessionConfiguration
executar a partir do Windows PowerShell mostra que todas as configurações de ponto de extremidade estão desabilitadas.
Exemplo 7: Impedir o acesso remoto a configurações de sessão com descritores de segurança personalizados
Este exemplo demonstra que o cmdlet desabilita Disable-PSRemoting
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 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 personalizadas de acesso total 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
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
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
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
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, User01 AccessAllowed
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 Test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
[New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,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 de 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 8: Reativar o acesso remoto às configurações de sessão selecionadas
Este exemplo mostra como reativar o acesso remoto somente às configurações de sessão selecionadas. Depois de desativar todas as configurações de sessão, reativamos uma sessão específica.
O Set-PSSessionConfiguration
cmdlet é usado para alterar a configuração da sessão PowerShell.6 . O parâmetro AccessMode com um valor de Remote reativa o acesso remoto à configuração.
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
Set-PSSessionConfiguration -Name PowerShell.6 -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
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
Name Permission
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\ ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
Parâmetros
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Force
Força o comando a ser executado sem pedir a confirmação do usuário.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
None
Não é possível canalizar objetos para este cmdlet.
Saídas
None
Este cmdlet não retorna nenhuma saída.
Notas
Este cmdlet só está disponível em plataformas Windows.
A desativação das configurações de sessão não desfaz todas as alterações feitas pelos
Enable-PSRemoting
cmdlets ouEnable-PSSessionConfiguration
. Talvez seja necessário desfazer as seguintes alterações manualmente.- Pare e desative o serviço WinRM.
- Exclua o ouvinte que aceita solicitações em qualquer endereço IP.
- Desative as exceções de firewall para comunicações WS-Management.
- Restaure o valor de LocalAccountTokenFilterPolicy para 0, que restringe o acesso remoto aos membros do grupo Administradores no computador.
Uma configuração de ponto de extremidade 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 ponto de extremidade de sessão registradas no computador. Ao negar o acesso remoto a todas as configurações de ponto de extremidade de sessão, você impede efetivamente que usuários remotos estabeleçam sessões que se conectam ao computador.