Come eseguire comandi PowerShell su computer remoti

Sommario:

Come eseguire comandi PowerShell su computer remoti
Come eseguire comandi PowerShell su computer remoti

Video: Come eseguire comandi PowerShell su computer remoti

Video: Come eseguire comandi PowerShell su computer remoti
Video: Understanding and Troubleshooting Windows Search and Indexing - YouTube 2024, Maggio
Anonim
PowerShell Remoting consente di eseguire comandi PowerShell o accedere a sessioni PowerShell complete su sistemi Windows remoti. È simile a SSH per l'accesso ai terminali remoti su altri sistemi operativi.
PowerShell Remoting consente di eseguire comandi PowerShell o accedere a sessioni PowerShell complete 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 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.

In Windows 7 o 8, fai clic su Start, quindi digita "powershell". Fai clic con il pulsante destro del mouse sul risultato e scegli "Esegui come amministratore".
In Windows 7 o 8, fai clic su 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 seguente cmdlet (il nome di PowerShell per un comando), quindi premere Invio:
Nella finestra di PowerShell, digitare il seguente cmdlet (il 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
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 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

E ricorda, dovrai eseguire quei due cmdlet sul PC a cui vuoi connetterti, così come su tutti i PC da cui vuoi connetterti.
E ricorda, dovrai eseguire quei due cmdlet sul PC a cui vuoi connetterti, così come su tutti i PC da cui vuoi connetterti.

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.

Image
Image

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

Image
Image

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.

Consigliato: