Anche se su Windows, PSRemoting viene abilitato per impostazione predefinita, non è sempre abilitato. Se hai bisogno di verificare se PSRemoting è abilitato o di abilitarlo su Windows, questa guida fa al caso tuo.
Questa guida ti guiderà attraverso diversi modi per abilitare PSRemoting su computer locali e remoti che eseguono Windows.
Cominciamo!
Abilitare PSRemoting fa molto
Se stai imparando per la prima volta su PowerShell Remoting, potresti pensare che l’abilitazione sia solo un singolo comando. Forse hai visto alcuni riferimenti al cmdlet di PowerShell Enable-PSRemoting
e pensi che una volta eseguito, si attivi semplicemente un bit da qualche parte. Ti sbagli.
Quando senti parlare dell’abilitazione di PSRemoting, molti compiti devono essere eseguiti in background affinché ciò accada. Poiché PowerShell Remoting dipende da altri sistemi per funzionare correttamente, ha alcune dipendenze.
Ad esempio, su Windows, quando esegui il cmdlet Enable-PSRemoting
senza parametri, vengono eseguiti tutti i seguenti compiti:
- Il servizio WinRM viene avviato e impostato per l’avvio automatico.
- Viene creato un listener sulle porte predefinite di WinRM, 5985 per il traffico HTTP.
- Vengono abilitate le eccezioni del firewall per WS-Management.
- Vengono registrate le configurazioni delle sessioni di PowerShell in WS-Management.
- Vengono abilitate le configurazioni delle sessioni di PowerShell.
- Imposta le sessioni remote di PowerShell per consentire l’accesso remoto.
- Riavvia il server WinRM per applicare tutte le modifiche.
Non sei contento di non dover fare tutto questo manualmente? Perché menzionarlo se il cmdlet Enable-PSRemoting
fa tutto da solo? Perché ci saranno momenti in cui qualcosa non funziona e è necessario risolvere il problema.
Impostazioni predefinite di PSRemoting su Windows
Poiché PSRemoting è nato in Windows, è abilitato per impostazione predefinita ma non universalmente e nemmeno per tutte le versioni di Windows OS.
In tutti i sistemi operativi client di Windows, PSRemoting è sempre disabilitato.
Su Windows Server, PSRemoting è abilitato a volte ma non sempre a seconda del profilo di rete in cui Windows è in esecuzione. Di seguito troverai una tabella utile per determinare se il tuo sistema operativo Windows ha PSRemoting abilitato o meno.
Operating System | Network Profile | PSRemoting |
Windows Server 2008 R2 | Domain/Private | Disabled |
Windows Server 2008 R2 | Public | Disabled |
Windows Server 2012 & Newer | Domain/Private | Enabled |
Windows Server 2012 & Newer | Public | Enabled within the same subnet |
Invece, su Linux è facile. PSRemoting non esiste nemmeno! PowerShell non è nemmeno installato di default. Se vuoi eseguire PSRemoting su Linux, dovrai impostarlo.
Basta parlare, vediamo come iniziare effettivamente a usare PSRemoting!
Prerequisiti
Se intendi seguire gli esempi in questa sezione, assicurati di avere quanto segue:
- A Windows Server 2008 R2 or later machine
- A local or Active Directory domain user in the local administrators group
Abilitazione di PSRemoting localmente
Uno dei modi più semplici per abilitare PSRemoting è utilizzare il comando integrato Enable-PSRemoting
. Questo comando, come appreso in precedenza, è una scorciatoia per configurare molti servizi diversi per ospitare PSRemoting.
Utilizzando il cmdlet Enable-PSRemoting
Quando si esegue questo comando senza parametri, vengono eseguite diverse azioni a seconda del sistema operativo in uso. Su qualsiasi sistema operativo Windows attuale, avvengono gli stessi passaggi di base. PSRemoting viene abilitato, viene creato il listener HTTP di WinRM e vengono abilitate le regole del firewall. La differenza chiave è il modo in cui vengono gestite le reti pubbliche.
Su un sistema operativo server, come Windows Server 2019, la regola del firewall per le reti pubbliche consente connessioni remote da altri dispositivi sulla stessa rete. Su un sistema operativo client, come Windows 10, riceverai un errore che indica che sei in una rete pubblica.
Se non sei sicuro di quale profilo di rete sia in uso su Windows, esegui il seguente comando:
Dovresti utilizzare PSRemoting solo su una rete attendibile in quanto essenzialmente esegue un server web per ascoltare le connessioni remote.

Se sei d’accordo nell’eseguire PSRemoting su un profilo di rete diverso da Privato o Dominio, puoi saltare il controllo del profilo di rete utilizzando il parametro SkipNetworkProfileCheck
. Utilizzando questo parametro, verranno aperte le porte di WinRM nel firewall di Windows.
Utilizzando il parametro
SkipNetworkProfileCheck
, verranno aperte le porte del firewall di Windows per il PSRemoting sul profilo di rete corrente, ma consentirà solo connessioni remote da macchine sulla stessa subnet.
Due parametri che possono essere utilizzati con il comando Enable-PSRemoting
lavorano insieme. Sono i parametri -Force
e -Confirm
. Puoi utilizzare -Force
per saltare tutte le richieste che normalmente verresti sottoposto eseguendo il comando Enable-PSRemoting
. Puoi anche utilizzare -Confirm:$false
per ottenere lo stesso risultato.
Utilizzando il comando winrm quickconfig
Il comando winrm quickconfig
era un modo popolare per configurare PSRemoting prima che venisse creato il cmdlet Enable-PSRemoting
, ma ha ancora il suo scopo. Se esegui solo winrm quickconfig
, verrà abilitato il servizio WinRM, verrà creato un listener HTTP e verranno abilitate le regole del firewall. Queste sono tutte cose che vengono già fatte da Enable-PSRemoting
, ma questo comando non configura la macchina per gestire sessioni remote di PowerShell.
Dove sono utili i comandi winrm
è nella configurazione di listener HTTPS. Se hai un certificato appropriato per il listener HTTPS, puoi semplicemente eseguire winrm quickconfig -transport:https
e il listener HTTPS e le regole del firewall HTTPS verranno configurati.
Abilitazione di PSRemoting in remoto
Fino ad ora, hai imparato che puoi abilitare PSRemoting eseguendo un comando su un computer locale. Questo ci porta a una situazione di circolo vizioso. PSRemoting ti consente di eseguire comandi su computer remoti, ma come si esegue un comando in remoto senza PSRemoting?
Esistono tre modi: l’utilità PSexec, WMI e Group Policy.
Utilizzando Psexec
PSExec è uno strumento pratico che consente di eseguire comandi remoti come PSRemoting. Tuttavia, PSexec utilizza un metodo di comunicazione diverso che si può sfruttare a proprio vantaggio!
Con PSexec, è possibile eseguire il comando Enable-PSRemoting
dal proprio computer locale utilizzando il comando seguente. Il comando di seguito chiama psexec e si connette al server ServerB. Avvia quindi un processo PowerShell ed esegue il comando Enable-PSRemoting
con l’opzione -Force
per ignorare le solite richieste.
Questa opzione è utile per situazioni occasionali in cui è necessario abilitare PSRemoting su un sistema remoto, ma non è ideale se si deve abilitare PSRemoting su molti sistemi e richiede di scaricare psexec.
Utilizzando WMI
A volte PSexec non funziona. Molti software di sicurezza bloccano psexec, ma non preoccuparti, hai comunque WMI!
Utilizzando PowerShell e il cmdlet Invoke-CimMethod
. Utilizzando il cmdlet Invoke-CimMethod
, è possibile istruire PowerShell a connettersi al computer remoto tramite DCOM e invocare metodi.
Per fortuna, WMI dispone di una classe Win32_Process
che consente di invocare processi. Inviando un metodo Create
alla classe Win32_Process
, Invoke-CimMethod
si connette al computer remoto, invoca PowerShell ed esegue Enable-PSRemoting
come mostrato di seguito.
L’esempio di seguito sta creando una tabella hash per la connessione di sessione in cui vengono specificati il nome del server, le credenziali e il protocollo. Successivamente, nella tabella hash seguente, vengono impostati i parametri per il Invoke-CimMethod
. Una volta eseguiti questi comandi, viene creata una sessione CIM tramite il protocollo DCOM che avvia un processo PowerShell che a sua volta esegue il comando Enable-PSRemoting
.
Nel caso in cui si utilizzi questo in un ambiente di dominio e l’utente che esegue i comandi disponga dei diritti amministrativi sul server di destinazione, la riga
Credential = Get-Credential
può essere esclusa.
Utilizzando la Group Policy
L’ultima e probabilmente la migliore opzione per abilitare WinRM su un’ampia gamma di computer è tramite Group Policy. Utilizzando la Group Policy, è possibile creare un singolo oggetto Group Policy e applicare tale policy a migliaia di computer contemporaneamente.
Tutti i computer devono essere in un dominio Active Directory per utilizzare la Group Policy.
Per utilizzare la Group Policy per abilitare WinRM su molti computer contemporaneamente, è necessario impostare tre diverse voci di configurazione:
- Abilitare il servizio WinRM.
- Aprire la porta del firewall di Windows per WinRm.
- Creare il listener WinRM e consentire le connessioni ad esso.
Prima di tutto, effettua l’RDP su un controller di dominio o, meglio ancora, installa il pacchetto degli strumenti di amministrazione remota del server (RSAT) su una workstation connessa al dominio. Ora dovresti avere a disposizione la Console di gestione delle policy di gruppo (GPMC).
Abilitazione del servizio WinRM
Per abilitare il servizio WinRM su tutti i computer di destinazione:
- Apri la GPMC e crea una GPO. Mentre ti trovi nella nuova GPO, vai a Configurazione computer —> Impostazioni di Windows —> Impostazioni di sicurezza —> Servizi di sistema
- Seleziona Gestione remota di Windows (WS-Management).
- Nel pannello di configurazione, seleziona la casella per Definisci questa impostazione delle policy.
- Seleziona il pulsante di opzione per Automatico per impostare il servizio WinRM in modo che si avvii automaticamente all’avvio.
- Fai clic su OK per confermare l’impostazione.
Apertura della porta del firewall di Windows
Successivamente, è necessario aprire la porta WinRM su tutti i computer di destinazione. Mentre stai ancora modificando la GPO creata in precedenza:
- Vai a Configurazione computer —> Impostazioni di Windows —> Impostazioni di sicurezza —> Firewall di Windows Defender con sicurezza avanzata.
2. Fare clic su Nuova regola in ingresso per creare una nuova regola in ingresso.
3. Nella prima pagina selezionare Predefinito e selezionare Gestione remota di Windows come mostrato di seguito.

4. Nella pagina successiva, spuntare la casella per la regola Rete di dominio/rete privata a meno che non si sappia che vengono utilizzate reti pubbliche nel proprio ambiente e che sia necessario consentire connessioni remote da esse.

5. Nella pagina successiva lasciare impostato il valore predefinito Consenti la connessione e fare clic su Fine per creare la regola.
Creare il listener WinRM e la lista di filtri
L’ultimo elemento di configurazione da aggiungere alla GPO è la creazione del listener WinRM e il consenso alle connessioni a tale listener WinRM. Questa impostazione crea il listener WinRM per HTTP e consente connessioni ad esso dagli IP o dalle gamme di IP specificate.
Mentre si sta ancora modificando la GPO WinRM:
- Navigare fino a Configurazione computer —> Modelli amministrativi —> Componenti di Windows —> Gestione remota di Windows (WinRM) —> Servizio WinRM.
2. Selezionare Abilitato per l’impostazione Consenti la gestione del servizio remoto tramite WinRM.
3. Nell’impostazione Consenti la gestione remota del server tramite WinRM, inserire un asterisco (*
) sia per il filtro IPv4 che per il filtro IPv6 come mostrato di seguito.
Nota che puoi specificare più host separati da una virgola in ogni elenco di filtri se sai in anticipo quali host si connetteranno a tutti i computer di destinazione.

4. Fai clic su OK per confermare l’ultima impostazione del GPO.
Applicazione del GPO
A questo punto, il GPO dovrebbe essere creato e pronto per l’uso. L’ultimo compito che devi svolgere è applicare questo GPO a tutti i computer di destinazione su cui desideri abilitare WinRM. In questo tutorial non imparerai come assegnare un GPO ai computer di destinazione.
Se non sai come assegnare un GPO a un insieme di computer in Active Directory, dovresti consultare questo articolo.
Passaggi successivi
In questo tutorial hai imparato come abilitare PSRemoting in molti modi diversi. Come abiliti PSRemoting dipenderà molto dal tuo ambiente e spero di aver coperto il tuo scenario qui.
Ora usa ciò che hai imparato, esci e inizia ad utilizzare PSRemoting nel tuo ambiente!