Jeder Dienst, der im Netzwerk angesprochen wird, benötigt einen Port. Den hinter diesem verbirgt sich ja gerade das Protokoll, welches verwendet wird. So wäre z. B. für das Öffnen von Webseiten der Port 80 zuständig. Wie kann man nun auch mit der PowerShell Port testen?
Ports sind natürlich u. a. der Schlüssel, um auf ein System zugreifen zu können. Darum sollte man auch immer nur die Ports geöffnet haben, welche unbedingt benötigt werden. Wie kann man jetzt also prüfen, welche den alle geöffnet sind?
Es gibt optimale Programme wie z. B. nmap, welches für eine umfangreiche und detaillierte Analyse sehr zu empfehlen ist. Selbstverständlich gibt es auch noch weitere Windows Bordmittel, so z. B. netstat. Möchte man aber nur kurz testen, ob ein bestimmter Port am Server geöffnet ist, so lässt sich das mit der Windows PowerShell einfach durchführen?
Test-NetConnection 192.168.1.1 -Port 22
Exkursion – Video Grundlagen PowerShell Cmdlets

Das Cmdlet Test-NetConnection prüft jetzt an der folgenden IP-Adresse den Port 22. Dahinter verbirgt sich der SSH Zugriff. Die Ausgabe liefert das Ergebnis TcpTestSucceeded : True. Das bedeutet jetzt, dass dieser Port offen ist.
Da es sich um das TCP (Transmission Control Protocol) handelt, sollte man auch dessen grundlegende Funktionsweise kennen. Wenn TCP ein Paket sendet, wird ein sogenannter SYN gesendet. Der Remote Rechner antwortet dabei mit dem SYN + ACK.
Dies bedeutet der Port ist offen. Sollte er allerdings als Antwort ein RST senden, so wäre keine Verbindung möglich. Natürlich würde dann als Antwort zu TcpTestSucceeded: False folgen.
Test-NetConnection 192.168.1.1 -Port 80
In diesem Beispiel wurde der Port 80 geprüft, welcher für das HTTP Protokoll zuständig ist. Wie der folgende Screenshot zeigt, ist dieser Port am System mit der IPv4-Adresse 192.168.1.1 nicht geöffnet.

Für einen schnellen Test, ob ein bestimmter Port am Server geöffnet ist, reicht die Windows PowerShell völlig aus. Übrigens, genauere Details zum Thema Ports könnt ihr im Artikel: Wie du in 3 Minuten verstanden hast, was man im Bereich Netzwerktechnik unter Ports versteht nachlesen.
Wenn du mehr über die Windows PowerShell lernen möchtest, so gibt es von Udemy hervorragende Kurse. Oft sind diese auch im Angebot. Ein Blick könnte sich allemal lohnen: Empfehlenswert ist folgender:
Einstieg in die Windows PowerShell Cookbook – Udemy Kurs*
Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 8.11.2023
Das könnte dich auch interessieren
- IP-Adresse und weitere Netzwerkeinstellungen im Windows Server 2016 konfigurieren -Mit GUI, Cmd oder PowerShell
- Mögliche Netzwerkprobleme durch das Verfolgen von Paketen prüfen – Mit Hilfe der PowerShell den Weg von Netzwerkpaketen nachvollziehen.
- Falls mal die DNS-Namensauflösung nicht klappt könnte das Löschen des lokalen DNS-Caches helfen
- So kann man die DNS Namensauflösung unter Windows 10 oder auch unter einem Windows Server auf korrekte Funktionsweise prüfen
- 10 Tools für die Netzwerkanalyse mit der Kommandozeile cmd
- Windows Tools zur Behebung von Netzwerkproblemen
- Windows für das Netzwerk konfigurieren – Vergabe einer IPv4 Adresse, DNS-Adresse und einer IP Adresse für den Standardgateway
Steigere dein Wissen
Kostenlose Befehlsreferenzen und E-Books herunterladen
Moin,
vielen Dank für diese Information.
Sehr hilfreich um mal schnell einen Port zu prüfen.
Meine Frage: Gibt es auch die Möglichkeit das Ergebnis auf TCPTestSucceeded zu reduzieren um eventuell mit diesem Wert weiter arbeiten zu können?
Hallo Dominik, du könntest das Cmdlet
"Select-Object"
verwenden. Z.B. so:Test-NetConnection 192.168.178.11 -Port 80 | Select-Object -Property TCPTestSucceeded
Du erhältst somit nur die Ausgabe von TCPTestSucceeded.Viele Grüße Markus
Ist eine Abfrage mit „Test-Connection MyWebserver -TcpPort 80“ nicht schneller?
Zwar langsamer als nmap, dafür aber schön anzusehen:
1..1024 |ForEach-Object {
if (Test-Connection MyWebserver -TcpPort $_) {
Write-Host „$_ ist offen!“ -ForegroundColor Green
} else {
Write-Host „$_ ist geschlossen!“ -ForegroundColor Red
}
}
Hallo Sven,
ja die Abfrage ist auf alle Fälle schneller. Allerdings prüft nmap natürlich noch mehr Details. Für einen kurzen Check eignet sich die PowerShell aber meiner Meinung nach besser.
Gruß Markus