WinRM und PowerShell Remoting sind wichtige Funktionen für das Verwalten von entfernten Windows-Computern. Ähnlich wie andere Dienste lauscht WinRM unter bestimmten Umständen auf bestimmten Ports. In diesem Tutorial erfahren Sie, welche WinRM-Ports verwendet werden und wie Sie sie bei Bedarf ändern können.
Verwandt: PowerShell Remoting: Der ultimative Leitfaden
Der WinRM-Listener
Einer der wichtigsten Teile von WinRM (und den Ports, auf denen es läuft) ist der WinRM-Listener.
Der WinRM-Listener ist im Grunde ein Webserver. Er kommuniziert über HTTP und HTTPS und in der Zeit vor Windows 7 verwendete er standardmäßig die gleichen Ports 80 und 443 wie die meisten Webserver.
Der Listener läuft als Dienst auf Ihrem Computer und wartet darauf, dass Verbindungen hergestellt werden, ähnlich wie ein normaler 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 – Port 5985
- HTTPS – Port 5986
Verwandt: PowerShell Remoting: Der ultimative Leitfaden
Fehler bei der Verbindung mit falschen Ports
Und wenn Sie die Firewall-Regel nicht hinzufügen, wenn Sie den Port ändern, erhalten Sie dieselbe Meldung, auch wenn Sie den Port angeben.
Ändern der WinRM-Ports
Obwohl Microsoft empfiehlt, aus Kompatibilitäts- und Benutzerfreundlichkeitsgründen bei den standardmäßigen Hörports zu bleiben, können Sie sie ändern. Dies kann hilfreich sein, wenn es Konflikte mit den standardmäßigen Ports oder Einschränkungen durch eine Firewall gibt, die die Verwendung dieser Ports blockiert.
Vielleicht haben Sie ein System eingerichtet, das so konfiguriert ist, dass es über benutzerdefinierte Ports eine Verbindung zu WinRM herstellt. Wenn Sie versuchen, wie gewohnt eine Verbindung herzustellen, erhalten Sie folgende Fehlermeldung:

Wenn dies der Fall ist, ist es an der Zeit, den WinRM-Port auf der Serverseite zu ändern!
Um die WinRM-Ports zu ändern, müssen Sie zunächst herausfinden, ob bereits ein Dienst auf diesen Ports lauscht.
Bestehende Verbindungen verfolgen
Der einfachste Weg, um herauszufinden, welche Ports auf einem Windows-Computer verwendet werden, besteht darin, das Tool netstat
zu verwenden. Netstat überprüft alle aktiven Ports auf Ihrem System und gibt bei aktiven Verbindungen die Quell- und Ziel-IP sowie den verwendeten Port zurück.
Um lauschende Ports vor der Änderung der WinRM-Ports zu ermitteln, führen Sie netstat -aon
aus. Die Schalter -aon
:
- zeigen alle aktiven Verbindungen an (
a
) - zeigen die Prozess-ID für den Prozess an, der die Verbindung geöffnet hat (
o
) - versuchen nicht, DNS-Namen der Ziel-IPs aufzulösen (
n
)

Wenn beispielsweise ein Webserver auf Port 80 lauscht, sehen Sie eine Zeile, in der die lokale Adresse mit :80
unter der Spalte Lokale Adresse
endet. In dieser Zeile sehen Sie die PID
oder Prozess-ID, die für die Verbindung verwendet wird.
Sobald Sie die PID kennen, können Sie die PID verwenden, um den Prozessnamen mithilfe des PowerShell-Cmdlets Get-Process
zu finden.

In diesem Fall können Sie jedoch oben sehen, dass der Prozessname einfach „System“ ist. Dies bedeutet, dass der Prozess stark in das Betriebssystem integriert ist und wahrscheinlich in Windows eingebaut ist.
Einstellen der WinRM-Kompatibilitätsports
WinRM verfügt über eine Funktion namens „Kompatibilitätsports“. Kompatibilitätsports dienen der Abwärtskompatibilität mit einigen Legacy-Systemen, die nur auf den Ports 80 für HTTP und 443 für HTTPS funktionieren. Wenn Sie WinRm so konfigurieren möchten, dass es auf diesen Ports lauscht, aktivieren Sie die Kompatibilitätslistener.
Sobald Sie sicher sind, dass auf den Ports 80 und 443 nichts anderes läuft, legen Sie die WSMan-Listener so fest, dass sie die Kompatibilitätsports verwenden (80 für HTTP und 443 für HTTPS).
Einstellen von WinRM zum Lauschen auf einem beliebigen Port
Wenn Sie aus irgendeinem Grund WinRM so konfigurieren müssen, dass es auf einem nicht standardmäßigen Port lauscht, können Sie dies auch tun. Gehen Sie dazu wie folgt vor:
- Finden Sie den Listener-Namen. Sie können dies tun, indem Sie alle WinRM-Listener mit dem
Get-Item
-Cmdlet auflisten. Der folgende Befehl listet alle (*
) derzeit installierten Listener auf.

2. Konfigurieren Sie anschließend mit dem oben angezeigten Listener-Namen jeden Listener mit Set-Item
, indem Sie den Pfad des Listeners und die Portnummer angeben, auf die er geändert werden soll.
3. An diesem Punkt lauschen die WinRM-Listener auf den richtigen Ports. Die Windows-Firewall blockiert wahrscheinlich Verbindungen zu diesen Ports. Sie müssen diese Ports öffnen. Führen Sie dazu den folgenden Befehl aus. Die New-NetFirewallRule
unten erstellt eine Windows-Firewall-Regel, um alle eingehenden TCP-Verbindungen zu einem benutzerdefinierten Port zuzulassen.
Verwandt: Windows Firewall deaktivieren: Entdecken Sie die vielen Möglichkeiten
Wenn Sie den entsprechenden Windows-Firewall-Port nicht geöffnet hätten, würden Sie beim Versuch der Verbindung folgende Meldung erhalten:

Verbindung zu einem benutzerdefinierten Port mit PSRemoting
Jetzt, da Sie WinRM erfolgreich auf dem WinRM-Server eingerichtet und konfiguriert haben, müssen Sie die Verbindung mit dem WinRM-Client testen. Dafür ist nur ein zusätzlicher Parameter erforderlich: Port
.
Verwenden Sie bei Verwendung von PSRemoting-Befehlen wie Invoke-Command
oder Enter-PSSession
den Parameter Port
und den erfolgreich eingerichteten Port, um eine Verbindung herzustellen.

Verwandt: Invoke-Command: Der beste Weg, um Remote-Code auszuführen