Master PowerShell Sessioni Remote: Accesso Interattivo e Persistente

Gestire sistemi remoti può spesso sembrare come navigare in un labirinto. Le sessioni interattive possono essere la soluzione se ti blocchi cercando di risolvere un problema con un server. Con l’approccio giusto, puoi connetterti a macchine remote senza sforzo, interagire con esse in tempo reale e persino mantenere connessioni per lavori a lungo termine.

In questa guida, imparerai come sbloccare il pieno potenziale delle sessioni di PowerShell per passare dalla frustrazione alla padronanza.

Ottimizza il tuo gioco di gestione remota e rendi quelle noiose attività un gioco da ragazzi!

Aprire una Sessione Interattiva

A volte, potrebbe essere necessario risolvere problemi o interagire con un computer remoto in tempo reale. Ad esempio, per diagnosticare un problema di configurazione o verificare i servizi. Gli strumenti di gestione remota spesso consentono connessioni, ma passare tra i sistemi può essere scomodo.

Le sessioni interattive in PowerShell forniscono una soluzione consentendoti di connetterti senza problemi a una macchina remota ed eseguire comandi come se stessi lavorando in una console locale.

Prima di avviare una sessione interattiva, assicurati che il sistema remoto abbia Windows Remote Management (WinRM) abilitato e configurato correttamente. Usa il seguente comando per abilitare WinRM sul sistema remoto: Enable-PSRemoting -Force

Per iniziare una sessione interattiva, usa il comando Enter-PSSession:

Enter-PSSession -ComputerName SRV2

Nota che il prompt ora include il nome del computer remoto, indicando una connessione attiva.

Conferma che la sessione sia in esecuzione sulla macchina remota:

hostname

Dopo aver completato i tuoi compiti, puoi uscire dalla sessione:

exit

Quando si utilizza Enter-PSSession, la sessione termina una volta che si esce da essa.

Verifica la sessione con il seguente:

Get-PSSession

Non dovrebbero essere elencate sessioni, poiché non esistono più.

Creazione e Gestione Sessioni Persistenti

Anche se le sessioni interattive sono utili per compiti in tempo reale, scompaiono una volta chiuse, il che limita la flessibilità per il lavoro in corso. Immagina di dover automatizzare alcuni comandi, disconnetterti temporaneamente e poi riconnetterti per continuare da dove avevi lasciato.

Non preoccuparti. Le sessioni persistenti colmano questo divario mantenendo una connessione tra il tuo computer locale e il computer remoto, anche quando esci dalla console o riavvii.

Per combinare casi d’uso non interattivi e interattivi, crea una sessione persistente:

$session = New-PSSession -ComputerName SRV2

Una volta creata, interagisci con la nuova sessione utilizzando il parametro Session:

Enter-PSSession -Session $session

Esci dalla sessione e controlla nuovamente le sessioni aperte:

exit
Get-PSSession

Il comando New-PSSession mantiene disponibile la sessione che ha creato.

Puoi anche utilizzare la sessione in modo non interattivo:

Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}

Disconnettersi e Riconnettersi alle Sessioni

Il lavoro in corso richiede di disconnettersi temporaneamente da una sessione senza terminarla completamente in un certo punto. Un esempio è quando è necessario riavviare la console locale, la disconnessione conserva lo stato della sessione, consentendo di riconnettersi successivamente.

PowerShell ti consente di disconnetterti da una sessione remota mantenendola attiva e riconnetterti successivamente.

Per disconnettersi dalla sessione:

Disconnect-PSSession -Session $session

La sessione ora appare Disconnessa.

È possibile riconnettersi alla sessione anche dopo aver riavviato la console di PowerShell:

Connect-PSSession -ComputerName SRV2

Questo processo consente di riprendere le attività nella stessa sessione.

Infine, pulire e rimuovere tutte le sessioni:

Get-PSSession | Remove-PSSession

💡 Suggerimento: Le sessioni persistenti possono essere potenti, ma lasciarle in esecuzione può consumare risorse di sistema sulla macchina locale o remota. Pulire sempre le sessioni quando non sono più necessarie per mantenere le prestazioni ottimali.

Conclusione

Le sessioni interattive e persistenti di PowerShell offrono strumenti potenti per la gestione remota dei sistemi, garantendo flessibilità ed efficienza.

Sia che si stia risolvendo problemi in tempo reale, automatizzando comandi o preservando il lavoro attraverso riavvii, queste tecniche consentono un controllo senza soluzione di continuità sui sistemi remoti.

Padroneggiare la gestione delle sessioni e dotarsi di competenze per gestire in modo efficiente varie attività amministrative!

Source:
https://adamtheautomator.com/powershell-interactive-sessions/