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:
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
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
Utilitzar una Sessió Remota amb Invoke-Command
Tancar una Sessió Remota
Exercicis Pràctics
Exercici 1: Executar una Comanda en un Ordinador Remot
- Creeu una sessió remota a un ordinador anomenat "Server01".
- Executeu la comanda
Get-Process
a l'ordinador remot utilitzant la sessió creada. - 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
- Demaneu a l'usuari que introdueixi les credencials.
- 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
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker