Introducció

Invoke-Command és una de les eines més potents de PowerShell per executar comandes de manera remota. Aquesta cmdlet permet enviar comandes a un o més ordinadors remots i obtenir els resultats de manera eficient. En aquest tema, aprendrem com utilitzar Invoke-Command per gestionar sistemes remots.

Conceptes Clau

  • Cmdlet Invoke-Command: Permet executar comandes en ordinadors remots.
  • Sessions Remotes: Connexions persistents a ordinadors remots que poden reutilitzar-se.
  • Credencials: Informació d'autenticació necessària per accedir als ordinadors remots.

Sintaxi Bàsica

La sintaxi bàsica de Invoke-Command és la següent:

Invoke-Command -ComputerName <NomOrdinador> -ScriptBlock { <Comanda> }

Paràmetres Principals

  • -ComputerName: Especifica el nom o adreça IP de l'ordinador remot.
  • -ScriptBlock: Conté el codi PowerShell que s'executarà a l'ordinador remot.
  • -Credential: Especifica les credencials d'usuari per autenticar-se a l'ordinador remot.

Exemples Pràctics

Exemple 1: Executar una Comanda Simple en un Ordinador Remot

Invoke-Command -ComputerName "Server01" -ScriptBlock { Get-Process }

Explicació: Aquest exemple executa la comanda Get-Process a l'ordinador remot "Server01" i retorna la llista de processos en execució.

Exemple 2: Utilitzar Credencials per Autenticar-se

$cred = Get-Credential
Invoke-Command -ComputerName "Server01" -Credential $cred -ScriptBlock { Get-Service }

Explicació: Aquest exemple demana a l'usuari que introdueixi les credencials i després executa la comanda Get-Service a l'ordinador remot "Server01".

Exemple 3: Executar Comandes en Múltiples Ordinadors

$servers = "Server01", "Server02", "Server03"
Invoke-Command -ComputerName $servers -ScriptBlock { Get-EventLog -LogName System -Newest 10 }

Explicació: Aquest exemple executa la comanda Get-EventLog en tres ordinadors remots ("Server01", "Server02", "Server03") i retorna els 10 esdeveniments més recents del registre de sistema.

Sessions Remotes

Crear una Sessió Remota

$session = New-PSSession -ComputerName "Server01"

Utilitzar una Sessió Remota amb Invoke-Command

Invoke-Command -Session $session -ScriptBlock { Get-Process }

Tancar una Sessió Remota

Remove-PSSession -Session $session

Exercicis Pràctics

Exercici 1: Executar una Comanda en un Ordinador Remot

  1. Creeu una sessió remota a un ordinador anomenat "Server01".
  2. Executeu la comanda Get-Process a l'ordinador remot utilitzant la sessió creada.
  3. Tanqueu la sessió remota.

Solució:

$session = New-PSSession -ComputerName "Server01"
Invoke-Command -Session $session -ScriptBlock { Get-Process }
Remove-PSSession -Session $session

Exercici 2: Utilitzar Credencials per Executar una Comanda Remota

  1. Demaneu a l'usuari que introdueixi les credencials.
  2. Executeu la comanda Get-Service a un ordinador remot anomenat "Server02" utilitzant les credencials.

Solució:

$cred = Get-Credential
Invoke-Command -ComputerName "Server02" -Credential $cred -ScriptBlock { Get-Service }

Errors Comuns i Consells

  • Error de Connexió: Si no podeu connectar-vos a l'ordinador remot, assegureu-vos que el servei WinRM està habilitat i configurat correctament.
  • Credencials Incorrectes: Si rebeu un error d'autenticació, verifiqueu que les credencials proporcionades són correctes.
  • Firewall: Assegureu-vos que el firewall no bloqueja les connexions remotes.

Conclusió

Invoke-Command és una eina essencial per a l'administració remota amb PowerShell. Amb la capacitat d'executar comandes en múltiples ordinadors i gestionar sessions remotes, podeu automatitzar tasques de manera eficient i segura. Practiqueu els exemples i exercicis proporcionats per familiaritzar-vos amb aquesta cmdlet poderosa.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats