O PowerShell é um poderoso console de comando incluído nas versões modernas do Windows. Um de seus recursos mais úteis é a capacidade de executar comandos em servidores remotos. Isso pode ser útil para administradores de sistema que gerenciam vários servidores Windows.
Etapa 1: Permitindo acesso remoto
Primeiro, precisamos permitir o acesso remoto. No servidor que você deseja acessar remotamente, abra o PowerShell com privilégios administrativos (clique com o botão direito do mouse em PowerShell e clique em "Executar como administrador"). Execute o seguinte comando:
Enable-PSRemoting -Force
Isso inicia o serviço WinRM, garante que ele seja iniciado automaticamente e configura o firewall para permitir conexões de entrada.
No computador (do qual você deseja se conectar), execute o seguinte comando com privilégios administrativos:
Enable-PSRemoting -Force
Precisamos garantir que os dois computadores confiem um no outro. Para fazer isso, precisamos definir a configuração "TrustedHosts". Se você deseja permitir conexões com o seu computador / servidor em todos os computadores, execute:
Set-Item wsman:\localhost\client\trustedhosts *
Se você deseja restringir isso a determinados computadores, use o seguinte comando. Substitua a lista separada por vírgula de 0.0.0.0, 1.1.1.1, 2.2.2.2 e 3.3.3.3 por endereços IP que terão acesso.
Set-Item wsman:\localhost\client\trustedhosts 0.0.0.0,1.1.1.1,2.2.2.2,3.3.3.3
Agora reinicie o WinRM:
Restart-Service WinRM
Etapa 2: testar a conexão
Para testar a conexão, vá para o computador do qual deseja se conectar e execute:
Test-WsMan ipaddress
Substitua ipaddresspelo endereço IP do outro computador / servidor.
Etapa 3: Abrir as portas
O primeiro comando que executamos ( Enable-PSRemoting -Force) configurará automaticamente o firewall para que ele aceite conexões de entrada para acesso remoto. No entanto, se houver algo na frente do firewall (como o seu roteador), talvez seja necessário configurar o encaminhamento de porta também. As portas usadas são:
- 5985 para HTTP
- 5986 para HTTPS
Etapa 4: Executando Comandos
O seguinte é usado para executar comandos em um servidor remoto:
Invoke-Command -ComputerName ipaddress -ScriptBlock { command } -credential username
Substitua ipaddresspelo endereço IP do servidor, commandpelo comando que você deseja executar nesse servidor e usernamepelo nome de usuário do usuário que executará o comando.
Se você não quiser usar Invoke-Commandpara cada comando, poderá iniciar uma sessão. Todo comando digitado será executado no servidor remoto com as credenciais especificadas. A sintaxe para iniciar uma sessão é a seguinte:
Enter-PSSession -ComputerName ipaddress -Credential username
Substitua ipaddresspelo endereço IP do servidor e usernamepelo usuário que executará o comando. Todo comando digitado daqui para frente será executado no servidor remoto.