Como executar comandos do PowerShell em computadores remotos
O PowerShell Remoting permite executar comandos do PowerShell ou acessar sessões completas do PowerShell em sistemas Windows remotos. É semelhante ao SSH para acessar terminais remotos em outros sistemas operacionais.
O PowerShell é bloqueado por padrão, portanto, será necessário habilitar 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 orientá-lo.
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 PC, 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..
No Windows 7 ou 8, pressione Iniciar e digite "powershell". Clique com o botão direito do mouse no resultado e escolha "Executar como administrador".
Na janela do PowerShell, digite o seguinte cmdlet (nome do PowerShell para um comando) e, em seguida, pressione Enter:
Ativar-PSRemoting -Force
Esse comando inicia o serviço WinRM, configura-o para ser iniciado automaticamente com o sistema e cria uma regra de firewall que permite conexões de entrada. o -Força
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 eles provavelmente estão em uma rede doméstica ou de pequena empresa - você terá um pouco mais de trabalho de configuração para fazer.
Nota: Seu sucesso na configuração de comunicação remota em um ambiente de domínio depende inteiramente da configuração de sua rede. A comunicação remota pode ser desabilitada ou até habilitada 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 saber mais 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 públicas.
Em seguida, você precisa definir a configuração TrustedHosts no PC ao qual deseja se conectar e 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 na qual deseja prosseguir e confiar em qualquer PC para se conectar remotamente, poderá digitar o seguinte cmdlet no PowerShell (novamente, será necessário executá-lo como administrador).
Wsman Set-Item: \ localhost \ client \ trustedhosts *
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írgulas de endereços IP ou nomes de computador para PCs aprovados..
Depois de executar esse comando, você precisará reiniciar o serviço WinRM para que suas novas configurações entrem em vigor. Digite o seguinte cmdlet e pressione Enter:
WinRM de serviço de reinicialização
E lembre-se de que você precisará executar esses dois cmdlets no PC ao qual deseja se conectar, bem como em todos os PCs aos quais deseja se conectar..
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 ela for concluída com êxito, você verá informações sobre o serviço WinRM do computador remoto na janela, o que significa que o WinRM está habilitado e seu PC 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 -credencial 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 digitar 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: \ -gragencial 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 - Usuário Credencial
Novamente, substitua “COMPUTADOR” pelo nome ou endereço IP do PC remoto e substitua “USER” pelo nome da conta de usuário que você deseja invocar..
Seu prompt é alterado para indicar o computador remoto ao qual você está conectado e você pode executar qualquer número de cmdlets do PowerShell diretamente no sistema remoto.