Como executar comandos do PowerShell em computadores remotos

Índice:

Como executar comandos do PowerShell em computadores remotos
Como executar comandos do PowerShell em computadores remotos

Vídeo: Como executar comandos do PowerShell em computadores remotos

Vídeo: Como executar comandos do PowerShell em computadores remotos
Vídeo: Disco 100% Como Resolver no Windows 10 [Método Seguro] - YouTube 2024, Maio
Anonim
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 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 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.

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".
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:
Na janela do PowerShell, digite o seguinte cmdlet (nome do PowerShell para um comando) e, em seguida, pressione Enter:

Enable-PSRemoting -Force

Este 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
Este 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

-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

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.
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 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.

Image
Image

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

Image
Image

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.

Recomendado: