WinRM en PowerShell Remoting zijn cruciale functies bij het beheren van externe Windows-computers. Net als bij andere services luistert WinRM onder specifieke omstandigheden op specifieke poorten. In deze tutorial leer je welke WinRM-poorten er zijn en zelfs hoe je ze kunt wijzigen, indien nodig.
Gerelateerd: PowerShell Remoting: De Ultieme Gids
De WinRM Listener
Een van de belangrijkste onderdelen van WinRM (en de poorten waarop het draait) is de WinRM-listener.
De WinRM-listener is in wezen een webserver. Het communiceert via HTTP en HTTPS en in de pre-Windows 7 dagen gebruikte het zelfs standaard dezelfde poorten 80 en 443 als de meeste webservers.
De listener draait als een service op je computer en wacht op verbindingen die tot stand moeten worden gebracht, net als een normale webserver.
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 – Poort 5985
- HTTPS – Poort 5986
Gerelateerd: PowerShell Remoting: De Ultieme Gids
Fouten bij het verbinden met verkeerde poorten
En als je de firewallregel niet toevoegt wanneer je de poort wijzigt, krijg je dezelfde foutmelding, zelfs als je de poort opgeeft zoals hier.
WinRM-poorten wijzigen
Hoewel Microsoft aanbeveelt om bij de standaard luisterpoorten te blijven vanwege compatibiliteit en gebruiksgemak, kun je ze wijzigen. Dit kan handig zijn in gevallen waarin er een conflict is met de standaardpoorten of een firewall-beperking het gebruik van die poorten blokkeert.
Misschien heb je een systeem opgezet dat geconfigureerd is om verbinding te maken met WinRM via aangepaste poorten. Als je probeert te verbinden zoals normaal, ontvang je het volgende foutbericht:

Als dat het geval is, is het tijd om de WinRM-poort aan de serverzijde te wijzigen!
Om de WinRM-poorten te wijzigen, moet je eerst uitzoeken of er al een service luistert op die poorten.
Bestaande verbindingen traceren
De eenvoudigste manier om te ontdekken welke poorten in gebruik zijn op een Windows-machine is door de netstat
tool te gebruiken. Netstat controleert alle actieve poorten op je systeem en geeft, indien actief, het bron- en doel-IP en de gebruikte poort terug.
Om luisterende poorten op te sporen voordat je WinRM-poorten wijzigt, voer je netstat -aon
uit. De -aon
-schakels:
- tonen alle actieve verbindingen (
a
) - tonen het proces-ID voor het proces dat de verbinding heeft geopend (
o
) - pogen geen DNS-namen van bestemmings-IP’s op te lossen (
n
)

Als bijvoorbeeld een webserver luistert op poort 80, zie je een regel waar het lokale adres eindigde in :80
onder de kolom Lokaal adres
. In deze rij zie je het PID
of proces-ID dat de verbinding gebruikt.
Eens je de PID kent, kan je de PID gebruiken om de procesnaam te vinden met iets zoals de \href{https://adamtheautomator.com/powershell-get-process/}{Get-Process} PowerShell-cmdlet.

Hoewel je in dit geval hierboven kan zien dat de procesnaam gewoonweg Systeem is. Dit betekent dat het proces zeer geïntegreerd is in het besturingssysteem en waarschijnlijk ingebouwd is in Windows.
WinRM Compatibiliteitspoorten instellen
WinRM heeft een functie genaamd compatibiliteitspoorten. Compatibiliteitspoorten bestaan om achterwaarts compatibel te zijn met sommige legacy systemen die alleen werken op poorten 80 voor HTTP en 443 voor HTTPS. Als je WinRm moet veranderen om te luisteren op deze poorten, schakel dan de compatibiliteitsluisteraars in.
Zodra je weet dat er niets anders draait op poorten 80 en 443, stel dan de WSMan luisteraars in om de compatibiliteitspoorten te gebruiken (80 voor HTTP en 443 voor HTTPS).
WinRM instellen om te luisteren op eender welke poort
Als je, om een of andere reden, WinRM moet configureren om te luisteren op een niet-standaard poort, kan je dat ook doen. Om dat te doen:
- Vind de luisteraar naam. Je kan dit doen door alle WinRM luisteraars op te sommen met behulp van de \code{Get-Item} cmdlet. Het onderstaande commando lijst alle (
*
) geïnstalleerde luisteraars momenteel.

2. Vervolgens, gebruik de bovenstaande luisteraarsnaam om elke luisteraar te configureren met behulp van \code{Set-Item} met de pad van de luisteraar en het poortnummer om het naar te wijzigen.
3. Op dit moment luisteren de WinRM-listeners op de juiste poorten, waarschijnlijk weigert de Windows Firewall externe verbindingen naar die poorten. Je moet die poorten openen. Voer hiervoor de volgende opdracht uit. De onderstaande New-NetFirewallRule
maakt een Windows Firewall-regel om alle inkomende TCP-verbindingen naar een aangepoorte poort toe te staan.
Gerelateerd: Windows Firewall uitschakelen: Ontdek de vele manieren
Als je de juiste Windows Firewall-poort niet hebt geopend, krijg je een bericht als je probeert verbinding te maken:

Verbinding maken met een aangepaste poort met PSRemoting
Nu je WinRM succesvol hebt ingesteld en geconfigureerd op de WinRM-server, moet je de verbinding testen met de WinRM-client. Daarvoor is slechts één extra parameter nodig; Port
.
Gebruik een van de PSRemoting-opdrachten zoals Invoke-Command
of Enter-PSSession
, specificeer de Port
-parameter en de ingestelde poort om succesvol verbinding te maken.

Gerelateerd: Invoke-Command: De beste manier om externe code uit te voeren