PowerShell è bloccato per impostazione predefinita, quindi dovrai abilitare PowerShell Remoting prima di usarlo. Questo processo di installazione è un po 'più complesso se si sta utilizzando un gruppo di lavoro anziché un dominio, ad esempio su una rete domestica, ma vi guideremo attraverso di esso.
Abilitare il servizio remoto di PowerShell sul PC a cui si desidera accedere da remoto
Il primo passo è abilitare PowerShell Remoting sul PC a cui si desidera effettuare connessioni remote. Su quel PC, è necessario aprire PowerShell con privilegi amministrativi.
In Windows 10, premi Windows + X e scegli PowerShell (Admin) dal menu Power User.
Enable-PSRemoting -Force
-Force
parte del cmdlet indica a PowerShell di eseguire queste azioni senza chiedere conferma per ogni passaggio.
Se i tuoi PC fanno parte di un dominio, è tutto ciò che devi fare. Puoi saltare avanti per testare la tua connessione. Se i tuoi computer fanno parte di un gruppo di lavoro - che probabilmente si trovano in una rete domestica o di una piccola impresa - hai un po 'più di lavoro di installazione da fare.
Nota: il successo nella configurazione di servizi remoti 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 avere le autorizzazioni necessarie per eseguire PowerShell come amministratore. Come sempre, controlla con i tuoi amministratori prima di provare qualcosa di simile. Potrebbero avere buone ragioni per non permettere la pratica, o potrebbero essere disposti a configurarlo per te.
Imposta il tuo gruppo di lavoro
Se i tuoi computer non si trovano su un dominio, devi eseguire alcuni altri passaggi per configurare le cose. Dovresti aver già abilitato i servizi di Remoting sul PC a cui vuoi connetterti, come descritto nella sezione precedente.
Nota: affinché PowerShell Remoting funzioni in un ambiente di gruppo di lavoro, è necessario configurare la rete come rete privata e non pubblica. Per ulteriori informazioni sulla differenza e su come passare a una rete privata se disponi già di una rete pubblica, consulta la nostra guida sulle reti private e pubbliche.
Successivamente, è necessario configurare l'impostazione TrustedHosts su entrambi i PC a cui si desidera connettersie il PC (oi PC) da cui desideri connetterti, in modo che i computer si fidino l'uno dell'altro. Puoi farlo in due modi.
Se si è su una rete domestica in cui si vuole andare avanti e si ha fiducia che qualsiasi PC possa connettersi in remoto, è possibile digitare il seguente cmdlet in PowerShell (di nuovo, sarà necessario eseguirlo come amministratore).
Set-Item wsman:localhostclient rustedhosts *
L'asterisco è un simbolo jolly per tutti i PC. Se invece si desidera limitare i computer che possono connettersi, è possibile sostituire l'asterisco con un elenco separato da virgole di indirizzi IP o nomi di computer per PC approvati.
Dopo aver eseguito tale comando, sarà necessario riavviare il servizio WinRM in modo che le nuove impostazioni abbiano effetto. Digitare il seguente cmdlet e premere Invio:
Restart-Service WinRM
Testare la connessione
Ora che hai configurato il tuo PC per PowerShell Remoting, è il momento 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 fallisce, vedrai invece un messaggio di errore.
Esegui un singolo comando remoto
Per eseguire un comando sul sistema remoto, utilizzare il
Invoke-Command
cmdlet usando la seguente sintassi:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
"COMPUTER" rappresenta il nome del PC remoto o l'indirizzo IP. "COMANDO" è il comando che vuoi 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 vedere 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 hanno diversi cmdlet da eseguire sul PC remoto, invece di digitare ripetutamente il cmdlet Invoke-Command e l'indirizzo IP remoto, è possibile avviare invece una sessione remota. Basta digitare il seguente cmdlet e premere Invio:
Enter-PSSession -ComputerName COMPUTER -Credential USER
Di nuovo, sostituire "COMPUTER" con il nome o l'indirizzo IP del PC remoto e sostituire "USER" con il nome dell'account utente che si desidera richiamare.