La remotització en PowerShell permet executar comandes i scripts en equips remots, facilitant l'administració i automatització de tasques en múltiples sistemes des d'un únic punt de control. Aquest mòdul introdueix els conceptes bàsics de la remotització, els seus avantatges i com configurar-la.
Conceptes Clau
- Remotització: Capacitat d'executar comandes en un equip remot des d'un equip local.
- WinRM (Windows Remote Management): Servei que permet la comunicació remota entre equips.
- PSRemoting: Funcionalitat de PowerShell que utilitza WinRM per a la remotització.
Avantatges de la Remotització
- Administració Centralitzada: Permet gestionar múltiples equips des d'un únic punt.
- Automatització: Facilita l'automatització de tasques repetitives en diversos sistemes.
- Eficiència: Redueix el temps i l'esforç necessaris per a la gestió de sistemes distribuïts.
Configuració Bàsica de la Remotització
- Activació de WinRM
Per activar WinRM en un equip, utilitza el següent comandament en una sessió de PowerShell amb privilegis d'administrador:
Aquest comandament configura el servei WinRM i ajusta les regles del tallafocs per permetre la comunicació remota.
- Verificació de l'Estat de WinRM
Per verificar si WinRM està activat i en funcionament, utilitza:
Aquest comandament hauria de mostrar que el servei WinRM està en estat "Running".
- Configuració de la Política d'Execució
Per permetre l'execució de scripts remots, assegura't que la política d'execució està configurada correctament:
- Configuració de la Llista de Confiances
Per permetre la connexió a equips remots, afegeix els equips a la llista de confiances:
Per afegir múltiples equips, separa els noms amb comes:
Exemple Pràctic: Connexió a un Equip Remot
- Establir una Sessió Remota
Per establir una sessió remota amb un equip, utilitza el següent comandament:
Aquest comandament et demanarà les credencials per autenticar-te a l'equip remot.
- Executar Comandes en l'Equip Remot
Un cop establerta la sessió, pots executar comandes com si estiguessis treballant directament en l'equip remot:
- Tancar la Sessió Remota
Per tancar la sessió remota i tornar a l'equip local, utilitza:
Exercici Pràctic
Objectiu
Configurar la remotització en dos equips i executar un comandament remotament.
Passos
-
Activar WinRM en ambdós equips:
- Executa
Enable-PSRemoting -Force
en ambdós equips.
- Executa
-
Configurar la política d'execució:
- Executa
Set-ExecutionPolicy RemoteSigned -Force
en ambdós equips.
- Executa
-
Afegir els equips a la llista de confiances:
- En el primer equip, executa
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NomDelSegonEquip"
. - En el segon equip, executa
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NomDelPrimerEquip"
.
- En el primer equip, executa
-
Establir una sessió remota des del primer equip al segon:
- Executa
Enter-PSSession -ComputerName NomDelSegonEquip -Credential (Get-Credential)
.
- Executa
-
Executar un comandament remotament:
- Un cop establerta la sessió, executa
Get-Service
per llistar els serveis en execució en el segon equip.
- Un cop establerta la sessió, executa
-
Tancar la sessió remota:
- Executa
Exit-PSSession
.
- Executa
Solució
# En el primer equip Enable-PSRemoting -Force Set-ExecutionPolicy RemoteSigned -Force Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NomDelSegonEquip" # En el segon equip Enable-PSRemoting -Force Set-ExecutionPolicy RemoteSigned -Force Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NomDelPrimerEquip" # Establir sessió remota des del primer equip Enter-PSSession -ComputerName NomDelSegonEquip -Credential (Get-Credential) # Executar comandament remotament Get-Service # Tancar sessió remota Exit-PSSession
Errors Comuns i Consells
- Error: "Access Denied": Assegura't que les credencials utilitzades tenen els permisos necessaris en l'equip remot.
- Error: "WinRM cannot complete the operation": Verifica que el servei WinRM està en funcionament i que les regles del tallafocs permeten la comunicació remota.
- Consell: Utilitza
Test-WSMan -ComputerName NomDelServidor
per verificar la connectivitat amb l'equip remot abans d'intentar establir una sessió.
Conclusió
La remotització en PowerShell és una eina poderosa per a l'administració i automatització de tasques en múltiples equips. En aquest tema, hem après els conceptes bàsics, com configurar la remotització i com establir i gestionar sessions remotes. En el següent tema, explorarem la configuració avançada de la remotització per optimitzar la seguretat i el rendiment.
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