WinRM e PowerShell Remoting sono funzionalità cruciali da avere quando si gestiscono computer Windows remoti. Proprio come altri servizi, WinRM è in ascolto su porte specifiche in circostanze specifiche. In questo tutorial, impara quali sono queste porte WinRM e anche come cambiarle, se necessario.
Correlato: PowerShell Remoting: La Guida Definitiva
Il WinRM Listener
Una delle parti più importanti di WinRM (e delle porte su cui opera) è il WinRM listener.
Il WinRM listener è un server web nel suo nucleo. Comunica tramite HTTP e HTTPS e, nei giorni precedenti a Windows 7, era solito utilizzare le stesse porte 80 e 443 che usano la maggior parte dei server web.
Il listener funziona come un servizio sul tuo computer in attesa che si tentino di stabilire connessioni, proprio come un normale server web.
A WinRm listener can listen two different ways; HTTP or HTTPS. The WinRM port for HTTP is 5985 while the WinRm port for HTTPS is 5986, by default.
- HTTP – Porta 5985
- HTTPS – Porta 5986
Correlato: PowerShell Remoting: La Guida Definitiva
Errori di Connessione a Porte Errate
E se non aggiungi la regola del firewall quando cambi la porta, otterrai lo stesso messaggio anche quando fornisci la porta in questo modo.
Cambiare le Porte di WinRM
Pur raccomandando Microsoft di rimanere con le porte di ascolto predefinite per compatibilità e facilità d’uso, è possibile cambiarle. Questo può essere utile nei casi in cui ci sia un conflitto con le porte predefinite o una restrizione del firewall che blocca l’uso di tali porte.
Forse hai un sistema configurato per connettersi a WinRM su porte personalizzate. Quando provi a connetterti come al solito, ricevi il seguente messaggio di errore:

Se è così, è ora di cambiare la porta WinRM sul lato del server!
Per cambiare le porte WinRM, devi prima scoprire se hai già un servizio in ascolto su quelle porte.
Trovare le connessioni esistenti
Il modo più semplice per scoprire quali porte sono in uso su una macchina Windows è utilizzare lo strumento netstat
. Netstat controlla tutte le porte attive nel sistema e, se attive, restituisce l’IP e la porta di origine e destinazione.
Per individuare le porte in ascolto prima di cambiare le porte WinRm, esegui netstat -aon
. Le opzioni -aon
:
- mostrano tutte le connessioni attive (
a
) - mostrano l’ID del processo che ha aperto la connessione (
o
) - non cercano di risolvere i nomi DNS degli IP di destinazione (
n
)

Se ad esempio un server web è in ascolto sulla porta 80, vedrai una riga in cui l’indirizzo locale termina con :80
nella colonna Indirizzo locale
. In questa riga vedrai l’ID del processo (PID
) utilizzato dalla connessione.
Una volta che conosci il PID, puoi fare riferimento al PID per trovare il nome del processo utilizzando qualcosa come il cmdlet PowerShell Get-Process
.

Anche se in questo caso, puoi vedere sopra che il nome del processo è semplicemente System. Ciò significa che il processo è altamente integrato nel sistema operativo ed è probabilmente incorporato in Windows.
Impostazione delle porte di compatibilità di WinRM
WinRM ha una funzionalità chiamata porte di compatibilità. Le porte di compatibilità esistono per essere retrocompatibili con alcuni sistemi legacy che funzionano solo su porte 80 per HTTP e 443 per HTTPS. Se è necessario modificare WinRM per ascoltare su queste porte, abilitare i listener di compatibilità.
Una volta che sai che non hai nulla in esecuzione sulle porte 80 e 443, impostare i listener WSMan per utilizzare le porte di compatibilità (80 per HTTP e 443 per HTTPS).
Impostazione di WinRM per l’ascolto su qualsiasi porta
Se, per qualche motivo, è necessario configurare WinRM per l’ascolto su una porta non standard, è possibile farlo. Per farlo:
- Trovare il nome del listener. Puoi farlo enumerando tutti i listener WinRM con il cmdlet
Get-Item
. Il comando di seguito elenca tutti (*
) i listener attualmente installati.

2. Successivamente, utilizzando il nome del listener mostrato sopra, configurare ciascun listener utilizzando Set-Item
fornendo il percorso del listener e il numero di porta da modificare.
3. A questo punto, i listener WinRM stanno ascoltando sulle porte corrette, probabilmente il firewall di Windows sta respingendo le connessioni remote a quelle porte. È necessario aprire tali porte. Per farlo, esegui il seguente comando. Il New-NetFirewallRule
qui sotto sta creando una regola del firewall di Windows per consentire tutte le connessioni TCP in ingresso a una porta personalizzata.
Correlato: Disabilita il firewall di Windows: Scopri i molti modi
Se non avessi aperto la porta del firewall di Windows appropriata, otterresti un messaggio del genere quando provi a connetterti:

Connessione a una porta personalizzata con PSRemoting
Ora che hai configurato e configurato correttamente WinRM sul server WinRM, è necessario testare la connessione con il client WinRM. Per farlo, è necessario solo un parametro aggiuntivo; Port
.
Utilizzando uno qualsiasi dei comandi PSRemoting come Invoke-Command
o Enter-PSSession
, specifica il parametro Port
e la porta impostata per effettuare con successo una connessione.

Correlato: Invoke-Command: Il modo migliore per eseguire codice remoto