Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O PowerShell é uma ferramenta poderosa para administradores de sistemas Windows, permitindo a execução de comandos e scripts de forma eficiente e automatizada. Um dos cmdlets mais úteis no PowerShell é o Invoke-Command
, que permite a execução de comandos em computadores remotos. Este artigo técnico irá guiá-lo através do uso do Invoke-Command
, fornecendo exemplos práticos e explicações detalhadas.
O Invoke-Command
é um cmdlet do PowerShell que permite executar comandos ou scripts em computadores remotos, utilizando o Windows Remote Management (WinRM). Isso é extremamente útil para administradores que precisam gerenciar múltiplos sistemas de forma centralizada.
Antes de utilizar o Invoke-Command
, é necessário garantir que o WinRM esteja configurado e habilitado nos computadores remotos. Você pode habilitar o WinRM com o seguinte comando:
Enable-PSRemoting -Force
Este comando deve ser executado tanto no computador local quanto nos computadores remotos.
Para executar um comando simples em um computador remoto, utilize a seguinte sintaxe:
Invoke-Command -ComputerName "NomeDoComputadorRemoto" -ScriptBlock { Get-Process }
Este comando irá listar todos os processos em execução no computador remoto especificado.
Você pode executar um script em múltiplos computadores remotos de uma só vez. Veja como:
$computers = "Computador1", "Computador2", "Computador3"
Invoke-Command -ComputerName $computers -ScriptBlock { Get-Service }
Este exemplo irá listar todos os serviços em execução nos computadores especificados.
Se você precisar passar credenciais para acessar os computadores remotos, utilize o parâmetro -Credential
:
$cred = Get-Credential
Invoke-Command -ComputerName "NomeDoComputadorRemoto" -ScriptBlock { Get-EventLog -LogName System } -Credential $cred
Este comando solicita credenciais e, em seguida, lista os eventos do log do sistema no computador remoto.
Para comandos que requerem uma sessão persistente, você pode criar uma sessão remota e reutilizá-la:
$session = New-PSSession -ComputerName "NomeDoComputadorRemoto"
Invoke-Command -Session $session -ScriptBlock { Get-Process }
Remove-PSSession -Session $session
Este exemplo cria uma sessão remota, executa um comando e, em seguida, remove a sessão.
O Invoke-Command
é uma ferramenta essencial para qualquer administrador de sistemas que precise gerenciar múltiplos computadores de forma eficiente. Com os exemplos fornecidos, você deve estar bem equipado para começar a utilizar este cmdlet poderoso em suas tarefas diárias.