
PowerShell Remoting ti consente di eseguire comandi PowerShell o accedere a sessioni complete di PowerShell su sistemi Windows remoti. È simile a SSH per l'accesso ai terminali remoti su altri sistemi operativi.
PowerShell è bloccato per impostazione predefinita, quindi dovrai abilitare il Remote PowerShell prima di utilizzarlo. Questo processo di installazione è un po 'più complesso se stai utilizzando un gruppo di lavoro anziché un dominio, ad esempio su una rete domestica, ma ti guideremo attraverso di esso.
RELAZIONATO: In che modo PowerShell differisce dal prompt dei comandi di Windows
Abilita Remote PowerShell sul PC a cui vuoi accedere da remoto
Il primo passo è abilitare PowerShell Remoting sul PC a cui si desidera effettuare connessioni remote. Su quel PC, dovrai aprire PowerShell con privilegi di amministratore.
In Windows 10, premi Windows + X, quindi scegli PowerShell (Admin) dal menu Power User.

In Windows 7 o 8, premi Start, quindi digita “PowerShell”. Fai clic con il pulsante destro del mouse sul risultato e scegli “Esegui come amministratore”.

Nella finestra di PowerShell digitare il cmdlet seguente (nome di PowerShell per un comando), quindi premere Invio:
Enable-PSRemoting -Force

Questo comando avvia il servizio WinRM, lo imposta per l'avvio automatico con il sistema e crea una regola firewall che consente le connessioni in entrata. Il -Force parte del cmdlet indica a PowerShell di eseguire queste azioni senza richiedere all'utente ogni passaggio.
Se i tuoi PC fanno parte di un dominio, è tutto ciò che devi fare. Puoi andare avanti per testare la tua connessione. Se i computer fanno parte di un gruppo di lavoro, che probabilmente si trovano su una rete domestica o di una piccola impresa, è necessario eseguire un po 'più di lavoro di installazione.
Nota: il successo della configurazione remota in un ambiente di dominio dipende interamente dalla configurazione della rete. I servizi remoti potrebbero essere disabilitati o addirittura abilitati automaticamente dai criteri di gruppo configurati da un amministratore. Potresti anche non disporre delle autorizzazioni necessarie per eseguire PowerShell come amministratore. Come sempre, verifica con i tuoi amministratori prima di provare qualcosa del genere. Potrebbero avere buone ragioni per non consentire la pratica, oppure potrebbero essere disposti a metterla in pratica.
Imposta il tuo gruppo di lavoro
Se i tuoi computer non fanno parte di un dominio, devi eseguire alcuni passaggi per configurare le cose. Dovresti aver già abilitato Remoting sul PC a cui desideri connetterti, come descritto nella sezione precedente.
RELAZIONATO: Qual è la differenza tra reti pubbliche e private in Windows?
Nota: affinché PowerShell Remoting funzioni in un ambiente di gruppo di lavoro, è necessario configurare la rete come rete privata, non pubblica. Per ulteriori informazioni sulla differenza e su come passare a una rete privata se è già configurata una rete pubblica, consulta la nostra guida sulle reti private rispetto a quelle pubbliche.
Successivamente, è necessario configurare l'impostazione TrustedHosts su entrambi i PC a cui si desidera connettersi e il PC (o PC) da cui si desidera connettersi, in modo che i computer si fidino l'uno dell'altro. Puoi farlo in due modi.
Se ti trovi su una rete domestica in cui vuoi andare avanti e ti fidi che qualsiasi PC si connetta in remoto, puoi digitare il seguente cmdlet in PowerShell (di nuovo, dovrai eseguirlo come amministratore).
Set-Item wsman:localhostclienttrustedhosts *
L'asterisco è un simbolo jolly per tutti i PC. Se invece vuoi limitare i computer che possono connettersi, puoi sostituire l'asterisco con un elenco separato da virgole di indirizzi IP o nomi di computer per PC approvati.
Dopo aver eseguito quel comando, dovrai riavviare il servizio WinRM per rendere effettive le nuove impostazioni. Digitare il seguente cmdlet e quindi premere Invio:
Restart-Service WinRM

E ricorda, dovrai eseguire quei due cmdlet sul PC a cui desideri connetterti e su tutti i PC da cui desideri connetterti.
Prova la connessione
Ora che hai configurato i PC per il PowerShell Remoting, è tempo di testare la connessione. Sul PC da cui si desidera accedere al sistema remoto, digitare il seguente cmdlet in PowerShell (sostituendo “COMPUTER” con il nome o l'indirizzo IP del PC remoto), quindi premere Invio:
Test-WsMan COMPUTER
Questo semplice comando verifica se il servizio WinRM è in esecuzione sul PC remoto. Se si completa correttamente, vedrai le informazioni sul servizio WinRM del computer remoto nella finestra, a indicare che WinRM è abilitato e il tuo PC può comunicare. Se il comando non riesce, verrà visualizzato invece un messaggio di errore.

Esegui un singolo comando remoto
Per eseguire un comando sul sistema remoto, utilizzare il Invoke-Command cmdlet utilizzando la sintassi seguente:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
“COMPUTER” rappresenta il nome o l'indirizzo IP del PC remoto. “COMANDO” è il comando che si desidera eseguire. “USERNAME” è il nome utente che si desidera eseguire il comando come sul computer remoto. Ti verrà richiesto di inserire una password per il nome utente.
Ecco un esempio. Voglio visualizzare il contenuto della directory C: su un computer remoto con l'indirizzo IP 10.0.0.22. Voglio usare il nome utente “wjgle”, quindi vorrei usare il seguente comando:
Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle

Avvia una sessione remota
Se si desidera eseguire diversi cmdlet sul PC remoto, anziché digitare ripetutamente il cmdlet Invoke-Command e l'indirizzo IP remoto, è possibile invece avviare una sessione remota. Basta digitare il seguente cmdlet e quindi premere Invio:
Enter-PSSession -ComputerName COMPUTER -Credential USER
Ancora una volta, sostituire “COMPUTER” con il nome o l'indirizzo IP del PC remoto e sostituire “UTENTE” con il nome dell'account utente che si desidera richiamare.

La richiesta cambia per indicare il computer remoto a cui si è connessi ed è possibile eseguire qualsiasi numero di cmdlet PowerShell direttamente sul sistema remoto.
