O PowerShell está bloqueado por padrão, portanto, você precisará ativar o PowerShell Remoting antes de usá-lo. Esse processo de configuração é um pouco mais complexo se você estiver usando um grupo de trabalho em vez de um domínio, por exemplo, em uma rede doméstica, mas orientaremos você.
Ativar o PowerShell Remoting no PC que você deseja acessar remotamente
Seu primeiro passo é habilitar o PowerShell Remoting no PC para o qual você deseja fazer conexões remotas. Nesse computador, você precisará abrir o PowerShell com privilégios administrativos.
No Windows 10, pressione Windows + X e escolha PowerShell (Admin) no menu Usuário avançado.
Enable-PSRemoting -Force
-Force
parte do cmdlet informa ao PowerShell para executar essas ações sem solicitar a você para cada etapa.
Se seus PCs fazem parte de um domínio, essa é toda a configuração que você precisa fazer. Você pode pular para frente para testar sua conexão. Se os seus computadores fizerem parte de um grupo de trabalho - que provavelmente estão em uma rede doméstica ou de pequena empresa -, você terá um pouco mais de trabalho de configuração para fazer.
Observação: seu sucesso na configuração de comunicação remota em um ambiente de domínio depende inteiramente da configuração de sua rede. O comunicado remoto pode ser desabilitado - ou até habilitado - automaticamente pela política de grupo configurada por um administrador. Você também pode não ter as permissões necessárias para executar o PowerShell como administrador. Como sempre, verifique com seus administradores antes de tentar algo assim. Eles podem ter boas razões para não permitir a prática, ou podem estar dispostos a prepará-la para você.
Configurar seu grupo de trabalho
Se seus computadores não estiverem em um domínio, você precisará executar mais algumas etapas para configurar as coisas. Você já deve ter habilitado o Remoting no PC ao qual deseja se conectar, como descrevemos na seção anterior.
Nota: Para o PowerShell Remoting funcionar em um ambiente de grupo de trabalho, você deve configurar sua rede como uma rede privada, não pública. Para mais informações sobre a diferença - e como mudar para uma rede privada, caso você já tenha uma rede pública configurada - confira nosso guia em redes privadas versus redes públicas.
Em seguida, você precisa definir a configuração TrustedHosts no PC ao qual deseja se conectare o PC (ou PCs) que você deseja conectar, para que os computadores confiem uns nos outros. Você pode fazer isso de duas maneiras.
Se você estiver em uma rede doméstica e quiser confiar em qualquer PC para se conectar remotamente, digite o seguinte cmdlet no PowerShell (novamente, será necessário executá-lo como administrador).
Set-Item wsman:localhostclient rustedhosts *
O asterisco é um símbolo curinga para todos os computadores. Se, em vez disso, você quiser restringir os computadores que podem se conectar, você poderá substituir o asterisco por uma lista separada por vírgula de endereços IP ou nomes de computador para PCs aprovados.
Depois de executar esse comando, você precisará reiniciar o serviço do WinRM para que suas novas configurações entrem em vigor. Digite o seguinte cmdlet e pressione Enter:
Restart-Service WinRM
Teste a conexão
Agora que você configurou seus PCs para o PowerShell Remoting, é hora de testar a conexão. No PC do qual você deseja acessar o sistema remoto, digite o seguinte cmdlet no PowerShell (substituindo “COMPUTER” pelo nome ou endereço IP do PC remoto) e pressione Enter:
Test-WsMan COMPUTER
Este comando simples testa se o serviço WinRM está sendo executado no PC remoto. Se a conclusão for bem-sucedida, você verá informações sobre o serviço WinRM do computador remoto na janela, o que significa que o WinRM está ativado e seu computador pode se comunicar. Se o comando falhar, você verá uma mensagem de erro.
Execute um único comando remoto
Para executar um comando no sistema remoto, use o
Invoke-Command
cmdlet usando a seguinte sintaxe:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
"COMPUTADOR" representa o nome ou o endereço IP do PC remoto. “COMMAND” é o comando que você deseja executar. “USERNAME” é o nome de usuário que você deseja executar o comando, como no computador remoto. Você será solicitado a inserir uma senha para o nome de usuário.
Aqui está um exemplo. Eu quero ver o conteúdo do diretório C: em um computador remoto com o endereço IP 10.0.0.22. Eu quero usar o nome de usuário "wjgle", então eu usaria o seguinte comando:
Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle
Iniciar uma sessão remota
Se você tiver vários cmdlets que deseja executar no PC remoto, em vez de digitar repetidamente o cmdlet Invoke-Command e o endereço IP remoto, poderá iniciar uma sessão remota. Basta digitar o seguinte cmdlet e pressionar Enter:
Enter-PSSession -ComputerName COMPUTER -Credential USER
Novamente, substitua “COMPUTER” pelo nome ou endereço IP do PC remoto e substitua “USER” pelo nome da conta de usuário que você deseja invocar.