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

  1. Remotització: Capacitat d'executar comandes en un equip remot des d'un equip local.
  2. WinRM (Windows Remote Management): Servei que permet la comunicació remota entre equips.
  3. 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ó

  1. Activació de WinRM

Per activar WinRM en un equip, utilitza el següent comandament en una sessió de PowerShell amb privilegis d'administrador:

Enable-PSRemoting -Force

Aquest comandament configura el servei WinRM i ajusta les regles del tallafocs per permetre la comunicació remota.

  1. Verificació de l'Estat de WinRM

Per verificar si WinRM està activat i en funcionament, utilitza:

Get-Service -Name WinRM

Aquest comandament hauria de mostrar que el servei WinRM està en estat "Running".

  1. 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:

Set-ExecutionPolicy RemoteSigned -Force

  1. Configuració de la Llista de Confiances

Per permetre la connexió a equips remots, afegeix els equips a la llista de confiances:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NomDelServidor"

Per afegir múltiples equips, separa els noms amb comes:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "Servidor1,Servidor2"

Exemple Pràctic: Connexió a un Equip Remot

  1. Establir una Sessió Remota

Per establir una sessió remota amb un equip, utilitza el següent comandament:

Enter-PSSession -ComputerName NomDelServidor -Credential (Get-Credential)

Aquest comandament et demanarà les credencials per autenticar-te a l'equip remot.

  1. Executar Comandes en l'Equip Remot

Un cop establerta la sessió, pots executar comandes com si estiguessis treballant directament en l'equip remot:

Get-Process

  1. Tancar la Sessió Remota

Per tancar la sessió remota i tornar a l'equip local, utilitza:

Exit-PSSession

Exercici Pràctic

Objectiu

Configurar la remotització en dos equips i executar un comandament remotament.

Passos

  1. Activar WinRM en ambdós equips:

    • Executa Enable-PSRemoting -Force en ambdós equips.
  2. Configurar la política d'execució:

    • Executa Set-ExecutionPolicy RemoteSigned -Force en ambdós equips.
  3. 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".
  4. Establir una sessió remota des del primer equip al segon:

    • Executa Enter-PSSession -ComputerName NomDelSegonEquip -Credential (Get-Credential).
  5. Executar un comandament remotament:

    • Un cop establerta la sessió, executa Get-Service per llistar els serveis en execució en el segon equip.
  6. Tancar la sessió remota:

    • Executa Exit-PSSession.

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

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