- 08/21/2020
- 3 minutos para ler
-
- j
- s
- D
- c
Você pode executar comandos em um ou centenas de computadores com um único comando PowerShell. Windowspowspowershell suporta computação remota usando várias tecnologias, incluindo WMI, RPC, andWS-Management.
PowerShell Core Suporta WMI, WS-Management e SSH remoting., Em PowerShell 6, o RPC não é suportado por mais tempo. Em PowerShell 7 e acima, RPC é suportado apenas no Windows.
Para mais informações sobre o sistema de interacção remota no PowerShell Core, consulte os seguintes artigos:
- SSH no PowerShell Remoting Core
- WSMan no PowerShell Remoting Core
Windows PowerShell Remoting Sem Configuração
Muitos cmdlets do Windows PowerShell tem o parâmetro ComputerName que permite que você colete dados andchange configurações em um ou mais computadores remotos., Estes cmdlets usam protocolos de comunicação variados e trabalham em todos os sistemas operacionais Windows sem qualquer configuração especial.
Esses cmdlets incluem:
- Reinicie o Computador
- Teste de Conexão
- Limpar-EventLog
- Get-EventLog
- Get-Correcção
- Get-Process
- Get-Service
- Set-Serviço
- Get-WinEvent
- Get-WmiObject
Normalmente, os cmdlets que o apoio de sistema de interacção remota sem configuração especial, têm o ComputerNameparameter e não ter o parâmetro de Sessão., Para encontrar esses cmdlets, na sua sessão, digite:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
Usando o protocolo WS-Management, comunicação remota do Windows PowerShell permite que você execute qualquer Windows PowerShellcommand em um ou mais computadores remotos. Você pode estabelecer conexões persistentes, iniciar interativesessions e executar scripts em computadores remotos.
para usar a remoção PowerShell do Windows, o computador remoto deve ser configurado para a gestão remota.Para mais informações, incluindo instruções, consulte Sobre requisitos remotos.,
Uma vez que tenha configurado a remoção PowerShell do Windows, estão disponíveis muitas estratégias removíveis para si.Este artigo lista apenas alguns deles. Para mais informações, consulte Sobre Remote.
iniciar uma sessão interactiva
para iniciar uma sessão interactiva com um único computador remoto, use o Enter-PSSessioncmdlet. Por exemplo, para iniciar uma sessão interativa com o computador remoto Server01, digite:
Enter-PSSession Server01
a linha de comandos muda para mostrar o nome do computador remoto., Todos os comandos que você digite na linha de comandos no computador remoto e os resultados são exibidos no computador local.
Para terminar a sessão interativa, tipo:
Exit-PSSession
Para mais informações sobre a Enter-PSSession e PSSession de Saída de cmdlets, consulte:
- Enter-PSSession
- Sair-PSSession
Executar um Comando Remoto
Para executar um comando em um ou mais computadores, usar o Invocar-Commandcmdlet., Por exemplo, para executar um Get-UICulturecommand nos computadores remotos Server01 e Server02, tipo:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
a saída é devolvida ao seu computador.
execute um programa
para executar um programa em um ou muitos computadores remotos, use o parâmetro FilePath do Invoke-Command
cmdlet. O script deve estar ligado ou acessível ao seu computador local. Os resultados são devolvidos ao seu computador local.
Por exemplo, o seguinte comando executa o programa DiskCollect. ps1 nos computadores remotos, Server01and Server02.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Estabelecer uma Conexão Persistente
Use New-PSSession
cmdlet para criar uma sessão persistente em um computador remoto. O exemplo seguinte cria sessões remotas EM Server01 e Server02. Os objetos de sessão são armazenados na variável $s
.
$s = New-PSSession -ComputerName Server01, Server02
Agora que as sessões estão estabelecidas, você pode executar qualquer comando nelas. E como as sessões são persistentes, você pode coletar dados de um comando e usá-lo em outro comando.,
Por exemplo, o seguinte comando executa um comando Get-HotFix nas sessões na variável $s e o andit grava os resultados na variável $h. A variável $h é criada em cada uma das sessões em $s, mas não existe na sessão local.
Invoke-Command -Session $s {$h = Get-HotFix}
Agora você pode usar os dados de $h
variável com outros comandos na mesma sessão. Os resultados são apresentados no computador local. Por exemplo:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
Advanced Remoting
Windows PowerShell remote management apenas começa aqui., Usando os cmdlets instalado com WindowsPowerShell, você pode estabelecer e configurar o remote sessões, ambos do local e remoto termina,criar personalizado e restrito sessões, permitir que os usuários importem comandos a partir de uma sessão remota thatactually executar implicitamente na sessão remota, a configurar a segurança de uma sessão remota, e muchmore.
Windows PowerShell inclui um provedor de WSMan. O provedor cria umWSMAN:
drive que permite younavigate através de uma hierarquia de Configurações no computador local e computadores remotos.,
para mais informações sobre o provedor de WSMan, provedor seeWSMan e sobre Cmdlets de gerenciamento de WS,ou na consola PowerShell do Windows, tipo Get-Help wsman
.
Para mais informações, ver:
- Sobre o FAQ
- Register-PSSessionConfiguration
- Importar-PSSession
Para ajuda com erros de sistema de interacção remota, consulte about_Remote_Troubleshooting.,
Veja Também:
- about_Remote
- about_Remote_FAQ
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Invoke-Command
- Importar-PSSession
- New-PSSession
- Register-PSSessionConfiguration
- WSMan Fornecedor