Mesmo que no Windows, o PSRemoting venha habilitado por padrão, ele não está sempre ativado. Se você precisa testar se o PSRemoting está habilitado ou habilitar o PSRemoting no Windows, este tutorial é para você.
Este tutorial vai te guiar por várias maneiras de habilitar o PSRemoting em computadores locais e remotos rodando Windows.
Vamos começar!
Habilitar o PSRemoting Faz Muita Coisa
Se você está aprendendo sobre o PowerShell Remoting pela primeira vez, pode pensar que habilitar é apenas um comando simples. Talvez você tenha visto algumas referências ao cmdlet do PowerShell Enable-PSRemoting
e pensa que ao executá-lo, ele simplesmente ativa algo. Você estaria errado.
Quando se fala em habilitar o PSRemoting, muitas tarefas precisam ser feitas nos bastidores para que isso aconteça. Como o PowerShell Remoting depende de outros sistemas para funcionar corretamente, ele tem algumas dependências.
Por exemplo, no Windows, ao executar o cmdlet Enable-PSRemoting
sem parâmetros, ele realiza todas as seguintes tarefas:
- O serviço WinRM é iniciado e definido para inicialização automática.
- Cria um ouvinte nas portas padrão do WinRM, 5985 para tráfego HTTP.
- Ativa as exceções do firewall para WS-Management.
- Registra as configurações da sessão do PowerShell com o WS-Management.
- Ativa as configurações da sessão do PowerShell.
- Configura as sessões remotas do PowerShell para permitir o acesso remoto.
- Reinicia o servidor WinRM para aplicar todas as alterações.
Não é bom que você não tenha que fazer tudo isso manualmente? Por que mencionar isso se o cmdlet Enable-PSRemoting
faz tudo? Porque haverá momentos em que algo não funcionará e você precisará solucionar o que está acontecendo.
Configurações padrão de PSRemoting no Windows
Como o PSRemoting nasceu no Windows, ele vem habilitado por padrão, mas não universalmente e também não para todas as versões do Windows.
Em todos os sistemas operacionais cliente do Windows, o PSRemoting está sempre desativado.
No Windows Server, o PSRemoting é habilitado às vezes mas nem sempre, dependendo do perfil de rede sob o qual o Windows está sendo executado. Abaixo você encontrará uma tabela útil para ajudá-lo a determinar se seu sistema operacional Windows tem o PSRemoting habilitado ou não.
Operating System | Network Profile | PSRemoting |
Windows Server 2008 R2 | Domain/Private | Disabled |
Windows Server 2008 R2 | Public | Disabled |
Windows Server 2012 & Newer | Domain/Private | Enabled |
Windows Server 2012 & Newer | Public | Enabled within the same subnet |
O Linux, por outro lado, é fácil. O PSRemoting nem é uma coisa! Nem mesmo o PowerShell está instalado por padrão. Se você quiser executar o PSRemoting no Linux, terá que configurá-lo.
Chega de papo, vamos mostrar como realmente começar a usar o PSRemoting!
Pré-requisitos
Se você pretende acompanhar os exemplos desta seção, certifique-se de ter o seguinte:
- A Windows Server 2008 R2 or later machine
- A local or Active Directory domain user in the local administrators group
Habilitando o PSRemoting Localmente
Uma das maneiras mais simples de habilitar o PSRemoting é usar o comando integrado Enable-PSRemoting
. Este comando, como você aprendeu acima, é um atalho para configurar muitos serviços diferentes para acomodar o PowerShell Remoting.
Usando o Cmdlet Enable-PSRemoting
Ao executar este comando sem quaisquer parâmetros, ele realizará diferentes ações dependendo do sistema operacional que você está executando. Em qualquer sistema operacional Windows atual, os mesmos passos básicos ocorrem. O PSRemoting é habilitado, o ouvinte HTTP do WinRM é criado e as regras do firewall são habilitadas. A diferença fundamental está na maneira como as redes públicas são tratadas.
Em um sistema operacional de servidor, como o Windows Server 2019, a regra do firewall para redes públicas permite conexões remotas de outros dispositivos na mesma rede. Em um sistema operacional cliente, como o Windows 10, você receberá um erro informando que está em uma rede pública.
Se você não tem certeza sobre qual perfil de rede o Windows está usando, execute o seguinte comando:
Você só deve usar o PSRemoting em uma rede confiável, pois ele essencialmente executa um servidor web para ouvir conexões remotas.

Se você está bem com a execução do PSRemoting em um perfil de rede diferente de Privado ou Domínio, você pode pular a verificação do perfil de rede usando o parâmetro SkipNetworkProfileCheck
. Usar este parâmetro abrirá as portas do WinRM no firewall do Windows.
O uso do parâmetro
SkipNetworkProfileCheck
abrirá o firewall do Windows para remoting do PowerShell no seu perfil de rede atual, mas só permitirá conexões remotas de máquinas na mesma sub-rede.
Dois parâmetros que podem ser usados com `Enable-PSRemoting` funcionam de mãos dadas. Eles são os parâmetros `-Force` e `-Confirm`. Você pode usar `-Force` para pular todas as solicitações que normalmente o comando `Enable-PSRemoting` lhe daria. Você também pode usar `-Confirm:$false` para obter o mesmo resultado.
Usando o Comando `winrm quickconfig`
O comando `winrm quickconfig` costumava ser uma maneira popular de configurar o PSRemoting antes do cmdlet `Enable-PSRemoting` ser criado, mas ainda tem seu lugar. Se você executar apenas `winrm quickconfig`, ele habilitará o serviço WinRM, criará um ouvinte HTTP e habilitará as regras do firewall. Todas essas são coisas que já são feitas pelo `Enable-PSRemoting`, mas isso não configura a máquina para lidar com sessões remotas do PowerShell.
Onde os comandos `winrm` são úteis é na configuração de ouvintes HTTPS. Embora você possa fazer isso manualmente, se tiver um certificado apropriado para o ouvinte HTTPS, você pode simplesmente executar `winrm quickconfig -transport:https` e o ouvinte HTTPS e as regras do firewall HTTPS serão configurados.
Habilitando o PSRemoting Remotamente
Até agora, você aprendeu que pode habilitar o PSRemoting executando um comando em um computador local. Isso nos leva a um cenário de ovo e galinha. O PSRemoting permite que você execute comandos em computadores remotos, mas como você executa um comando remotamente sem PSRemoting?
Três maneiras; o utilitário PSexec, WMI e Política de Grupo.
Usando o Psexec
O PSExec é uma ferramenta útil que permite executar comandos remotos, assim como o PSRemoting faz. No entanto, o PSexec usa um método de comunicação diferente, o que você pode aproveitar!
Com o PSexec, você pode executar o Enable-PSRemoting
do seu computador local usando o seguinte comando. O comando abaixo está chamando o psexec e se conectando ao servidor ServerB. Em seguida, ele inicia um processo do PowerShell e executa o comando Enable-PSRemoting
com o switch -Force
para pular as solicitações habituais.
Esta opção é boa para casos isolados em que você precisa habilitar o PSRemoting em um sistema remoto, mas não é ótimo para ter que habilitar o PSRemoting em muitos sistemas e requer que você baixe o psexec.
Usando WMI
Às vezes, o PSexec não funciona. Muitos softwares de segurança bloqueiam o psexec, mas não se preocupe, você também tem o WMI!
Usando o PowerShell e o cmdlet Invoke-CimMethod
. Usando o cmdlet Invoke-CimMethod
, você pode instruir o PowerShell a se conectar ao computador remoto via DCOM e invocar métodos.
Felizmente para você, o WMI tem uma classe Win32_Process
que permite invocar processos. Ao invocar um método Create
contra o Win32_Process
, o Invoke-CimMethod
se conecta ao computador remoto, invocando o PowerShell e executando o Enable-PSRemoting
como mostrado abaixo.
O exemplo abaixo está criando uma tabela hash para a conexão da sessão, onde o nome do servidor, as credenciais e o protocolo são especificados. Em seguida, na tabela hash seguinte, os parâmetros para o Invoke-CimMethod
estão sendo definidos. Uma vez que esses são executados, uma sessão CIM é criada sobre o protocolo DCOM que inicia um processo PowerShell, que por sua vez executa o comando Enable-PSRemoting
.
No caso de estar usando isso em um ambiente de domínio e o usuário que está executando os comandos tem direitos administrativos no servidor de destino, a linha
Credential = Get-Credential
pode ser excluída.
Usando a Política de Grupo
A última e, sem dúvida, a melhor opção para habilitar o WinRM em uma ampla gama de computadores é por meio da política de grupo. Ao usar a Política de Grupo, você pode criar um único Objeto de Política de Grupo e aplicar essa política em milhares de computadores de uma vez.
Todos os computadores devem estar em um domínio do Active Directory para usar a Política de Grupo.
Para usar a Política de Grupo para habilitar o WinRM em muitos computadores de uma vez, será necessário configurar três itens de configuração diferentes:
- Habilitar o serviço WinRM.
- Abrir a porta do Firewall do Windows para o WinRM.
- Criar o ouvinte do WinRM e permitir conexões a ele.
Primeiro, faça RDP para um controlador de domínio ou, melhor ainda, instale o pacote de ferramentas do administrador do servidor remoto (RSAT) em uma estação de trabalho associada ao domínio. Agora, você deve ter acesso ao Console de Gerenciamento de Diretiva de Grupo (GPMC).
Habilitando o Serviço WinRM
Para habilitar o serviço WinRM em todos os computadores de destino:
- Abra o GPMC e crie uma GPO. Enquanto estiver na nova GPO, navegue até Configuração do Computador —> Configurações do Windows —> Configurações de Segurança —> Serviços do Sistema
- Selecione Windows Remote Management (WS-Management).
- No painel de configuração, marque a caixa para Definir esta configuração de política.
- Selecione o botão de opção para Automático para iniciar automaticamente o serviço WinRM durante a inicialização.
- Clique em OK para confirmar a configuração.
Abrindo a Porta do Firewall do Windows
Em seguida, você precisa abrir a porta WinRM em todos os computadores de destino. Enquanto ainda estiver editando a GPO criada acima:
- Navegue até Configuração do Computador —> Configurações do Windows —> Configurações de Segurança —> Firewall do Windows Defender com Segurança Avançada.
2. Clique em Nova Regra de Entrada para criar uma nova regra de entrada.
3. Na primeira página, selecione Predefinido e selecione Gerenciamento Remoto do Windows como mostrado abaixo.

4. Na próxima página, marque a caixa para a regra de Rede de Domínio/Privada a menos que você saiba que redes públicas são usadas em seus ambientes e você precisará permitir conexões remotas a partir delas.

5. Na próxima página, deixe o padrão de Permitir a conexão e clique em Concluir para criar a regra.
Crie o Listener e Lista de Filtro do WinRM
O último item de configuração a ser adicionado ao seu GPO é criar o listener do WinRM e permitir conexões a esse listener do WinRM. Essa configuração cria o listener do WinRM para HTTP e permite conexões a ele a partir dos IPs ou faixas de IPs especificados.
Ainda enquanto estiver editando o GPO do WinRM:
- Navegue até Configuração do Computador —> Modelos Administrativos —> Componentes do Windows —> Gerenciamento Remoto do Windows (WinRM) —> Serviço WinRM.
2. Selecione Ativado para a configuração Permitir gerenciamento de serviço remoto através do WinRM.
3. Sob a configuração Permitir gerenciamento remoto do servidor através do WinRM, forneça um asterisco (*
) tanto para o filtro IPv4 quanto para o filtro IPv6 como mostrado abaixo.
Observe que você pode especificar vários hosts separados por vírgula em cada lista de filtro se souber de antemão quais hosts se conectarão a todos os computadores de destino.

4. Clique em OK para confirmar a configuração mais recente da GPO.
Aplicando a GPO
Neste momento, a GPO deve estar criada e pronta para ser usada. A última tarefa que você deve fazer agora é aplicar esta GPO a todos os computadores de destino nos quais deseja habilitar o WinRM. Você não aprenderá como atribuir uma GPO a computadores de destino neste tutorial.
Se você não sabe como atribuir uma GPO a um conjunto de computadores no Active Directory, deve verificar este artigo.
Próximos Passos
Neste tutorial, você aprendeu como habilitar o PSRemoting de muitas maneiras diferentes. Como você habilita o PSRemoting dependerá muito do seu ambiente e espero ter coberto seu cenário aqui.
Agora, coloque em prática o que aprendeu, saia e comece a usar o PSRemoting em seu ambiente!