Verwenden des PortQry-Befehlszeilentools

PortQry ist ein Befehlszeilentool, mit dem Sie Tcp/IP-Konnektivitätsprobleme beheben können. Dieses Tool meldet die status von TCP- und UDP-Ports (User Datagram Protocol) auf einem lokalen Computer oder auf einem Remotecomputer. Außerdem werden ausführliche Informationen zur Portnutzung des lokalen Computers bereitgestellt.

Da PortQry als Tool zur Problembehandlung verwendet werden soll, sollten Benutzer, die es zur Problembehandlung für ein bestimmtes Problem verwenden, über ausreichende Kenntnisse ihrer Computerumgebung verfügen.

Sie können PortQry über eine Eingabeaufforderung in einem von mehreren Modi verwenden:

  • Befehlszeilenmodus. Sie können diesen Modus verwenden, um Probleme mit lokalen oder Remotecomputern zu beheben.
  • Lokaler Modus. In diesem Modus können Sie mehrere Parameter verwenden, die für die Problembehandlung des lokalen Computers vorgesehen sind.
  • Interaktiver Modus. Ähnlich wie im Befehlszeilenmodus, aber Sie können Tastenkombinationen und Parameter verwenden.

Hinweis

Sie können ein separates Tool namens PortQryUI herunterladen, das eine grafische Benutzeroberfläche für PortQry enthält. PortQryUI verfügt über mehrere Features, die die Verwendung von PortQry vereinfachen können. Informationen zum PortQryUI-Tool finden Sie unter PortQryUI – Benutzeroberfläche für den PortQry-Befehlszeilenportscanner.

Gilt für: Unterstützte Versionen von Windows

PortQry-Tests und -Ergebnisse

Typische Portscantools melden, dass der Port über eine LISTENING-status verfügt, wenn der UDP-Zielport keine ICMP-Nachricht (Internet Control Message Protocol) "Ziel nicht erreichbar" zurückgibt. Dieses Ergebnis ist aus einem oder beiden der folgenden Gründe möglicherweise nicht korrekt:

  • Wenn keine Antwort auf ein gerichtetes Datagramm vorhanden ist, lautet der Zielport möglicherweise FILTERED.
  • Die meisten Dienste reagieren nicht auf ein unformatiertes Benutzerdatengramm, das an sie gesendet wird. In der Regel antwortet der Dienst oder das Programm, das auf einen Port lauscht, nur auf eine Nachricht, die eine bestimmte Sitzungsebene oder ein bestimmtes Protokoll der Anwendungsebene verwendet.

PortQry verwendet einen zweistufigen Testprozess, um genauere und nützlichere Ergebnisse zu erzielen.

Schritt 1: Port status Test

PortQry meldet die status eines Ports als einen von drei Werten:

  • LISTENING: Diese Antwort gibt an, dass ein Prozess am Zielport lauscht. PortQry hat eine Antwort vom Zielport empfangen.
  • NICHT LAUSCHEN: Diese Antwort gibt an, dass kein Prozess am Zielport lauscht. PortQry hat eine der folgenden ICMP-Nachrichten vom Zielport empfangen:

    Ziel nicht erreichbar Port nicht erreichbar

  • GEFILTERT: Diese Antwort gibt an, dass der Zielport gefiltert wird. PortQry hat keine Antwort vom Zielport empfangen. Ein Prozess lauscht möglicherweise nicht am Zielport. Standardmäßig fragt PortQry einen TCP-Port dreimal ab, bevor er eine Antwort von FILTERED zurückgibt, und fragt einmal einen UDP-Port ab, bevor die Antwort FILTERED zurückgegeben wird.

Schritt 2: Spezialisierte Tests

Wenn keine Antwort von einem UDP-Zielport vorliegt, meldet PortQry, dass der Port LISTENING oder FILTERED ist. Wenn Sie jedoch ein Konnektivitätsproblem beheben, ist es hilfreich zu wissen, ob ein Port gefiltert wird oder lauscht. Dies gilt insbesondere für umgebungen, die eine oder mehrere Firewalls enthalten.

PortQry optimiert seinen Port status Berichts, indem ein zweiter Satz von Tests verwendet wird, die mit dem Dienst oder Programm interagieren können, der am Zielport lauscht. Für diesen Test führt PortQry folgende Aktionen aus:

  • PortQry verwendet die Dienstdatei, die sich im Ordner %SYSTEMROOT%\System32\Drivers\Etc befindet, um zu bestimmen, welcher Dienst an den einzelnen Ports lauscht.
  • PortQry erstellt eine Nachricht, die speziell für den erwarteten Dienst oder das erwartete Programm erstellt wird, und sendet diese Nachricht dann an den Zielport. Abhängig vom Dienst oder Programm fordert die Nachricht möglicherweise Informationen an, die für die Problembehandlung nützlich sind, z. B. die folgenden:
    • Domänen- und Domänencontrollerinformationen (LDAP-Abfragen)
    • Registrierte Clientdienste und Ports (RPC-Abfragen)
    • Ob anonymer Zugriff zulässig ist (FTP-Abfragen)
    • MAC-Adresse (NetBIOS-Abfragen)
    • Mspclnt.ini Dateiinformationen (ISA Server-Abfragen)
  • PortQry analysiert, formatiert und gibt dann die Antwort des Diensts oder Programms als Teil des Testberichts zurück.

Zusätzliche Tests zur Problembehandlung für den lokalen Computer

Wenn Sie Probleme mit Ports auf dem Computer behandeln müssen, auf dem Sie PortQry installiert haben, verwenden Sie PortQry im lokalen Modus. Wenn Sie die Parameter im lokalen Modus in der Befehlszeile verwenden, können Sie aufgaben wie die folgenden auf dem lokalen Computer ausführen:

  • Auflisten von Portzuordnungen
  • Überwachen eines bestimmten Ports auf Änderungen
  • Überwachen eines bestimmten Prozesses auf Änderungen

Weitere Informationen finden Sie unter Verwenden von PortQry im lokalen Modus (Befehlszeile).

Verwenden von PortQry im Befehlszeilenmodus

Sie können PortQry auf die gleiche Weise wie jedes andere Befehlszeilentool an einer Eingabeaufforderung ausführen. Die meisten Beispiele in diesem Artikel zeigen PortQry-Befehlszeilenbefehle. Im Befehlszeilenmodus können Sie der Befehlszeichenfolge mehrere Optionen hinzufügen, um anzugeben, welche Abfrage ausgeführt und wie sie ausgeführt werden soll. Um PortQry im Befehlszeilenmodus auszuführen, führen Sie einen Befehl aus, der die folgende Syntax verwendet:

portqry.exe -n <name_to_query> [options]

Hinweis

In diesem Befehl <ist name_to_query> die IP-Adresse, der Computername oder die Domäne, die sie abfragen möchten. Dieser Parameter ist erforderlich. [Optionen] sind die optionalen Parameter.

PortQry-Parameter für den Befehlszeilenmodus

Die folgenden Parameter sind im regulären Befehlszeilenmodus verfügbar:

Parameter Beschreibung Kommentare
-n <name> Abfragen des spezifischen Ziels
  • Dies ist der einzige erforderliche Parameter für den Befehlszeilenmodus.
  • Der <Name-Wert> stellt den Namen oder die IP-Adresse des abzufragenden Computers dar. Dieser Wert darf keine Leerzeichen enthalten.
-p <protocol> Verwenden des angegebenen Protokolls
  • Der <Protokollwert> stellt den Typ des abzufragenden Ports dar (mögliche Werte sind tcp, udpoder both).
  • Der Standardwert ist tcp.
-e <port_number> Geben Sie den Zielport (auch als "Endpunkt" bezeichnet) an.
  • Der <port_number> Wert stellt den Port dar, der auf dem Zielcomputer abfragt werden soll.
  • Der Standardwert ist 80.
-o <port_number>,<port_number> Angeben mehrerer Zielports in einer Sequenz Die <werte port_number,port_number>>< stellen eine durch Trennzeichen getrennte Liste von Portnummern dar, die in einer Sequenz abgefragt werden sollen. Verwenden Sie keine Leerzeichen um die Kommas.
-r <port_number>:<port_number> Angeben eines Bereichs von Zielports
  • Die <Werte port_number>:<port_number> stellen die Start- und Endportnummern dar, die durch einen Doppelpunkt getrennt sind. Verwenden Sie keine Leerzeichen um den Doppelpunkt.
  • Die Startportnummer muss kleiner als die Endportnummer sein.
-l <filename.txt> Generieren einer Protokolldatei
  • Der <filename.txt-Wert > stellt den Namen und die Erweiterung der Protokolldatei dar. Dieser Wert darf keine Leerzeichen enthalten.
  • Wenn der Befehl ausgeführt wird, erstellt PortQry die Protokolldatei in dem Verzeichnis, in dem er installiert ist.
  • Wenn die Datei bereits vorhanden ist, fordert PortQry Sie auf, zu bestätigen, dass Sie sie überschreiben möchten (es sei denn, Sie verwenden auch den -y Parameter).
-y Vorherige Protokolldatei überschreiben
  • Wenn Sie zusammen mit -lverwenden-y, überschreibt PortQry die vorhandene Protokolldatei, ohne Sie zur Bestätigung der Aktion aufzufordern.
  • Wenn die PortQry-Befehlszeichenfolge nicht enthält -l, ignoriert -yPortQry .
-sl Zusätzliche Zeit für die Antwort warten (auch bekannt als langsame Linkverzögerung) Verwenden Sie diesen Parameter, um die Zeit zu verdoppeln, die PortQry auf eine Antwort von einem UDP-Port wartet, bevor PortQry feststellt, dass der Port NICHT LAUSCHT oder dass er GEFILTERT ist. Wenn Sie langsame oder unzuverlässige Netzwerkverbindungen abfragen, ist die normale Wartezeit möglicherweise zu kurz, um eine Antwort zu erhalten.
-nr Suche nach umgekehrten Namen überspringen
  • Wenn Sie zum Angeben einer IP-Adresse für den Zielcomputer verwenden -n , führt PortQry standardmäßig eine umgekehrte Namenssuche durch, um die IP-Adresse in einen Namen aufzulösen. Dieser Prozess kann zeitaufwändig sein, insbesondere wenn PortQry die IP-Adresse nicht auflösen kann. Verwenden Sie -nr , um diesen Schritt der Abfrage zu überspringen.
  • Wenn Sie verwenden -n , um einen Computer- oder Domänennamen anzugeben, ignoriert -nrPortQry .
-sp <port_number> Abfragen von einem bestimmten Quellport
  • Der <port_number-Wert> stellt den Port dar, den PortQry zum Senden der Abfrage verwendet.
  • PortQry kann keinen Port verwenden, den ein anderer Prozess bereits verwendet. Wenn der angegebene Port bereits verwendet wird, gibt PortQry die folgende Fehlermeldung zurück:
    Der angegebene Quellport kann nicht verwendet werden.
    Der Port wird bereits verwendet.
    Geben Sie einen Port an, der nicht verwendet wird, und führen Sie den Befehl erneut aus.
  • In den folgenden Fällen verwendet PortQry den angegebenen Port für den ersten Test der Abfrage, aber nicht für den zweiten Test:
    • RPC (TCP- und UDP-Ports 135)
    • LDAP (UDP-Port 389)
    • NetBIOS-Adapter status abfrage (UDP-Port 137)
    In diesen Fällen verwendet PortQry einen kurzlebigen Port für den zweiten Test. Wenn dies der Fall ist, zeichnet PortQry "Using ephemeral source port" in seiner Ausgabe auf.
  • Wenn auf dem Computer, auf dem PortQry installiert ist, auch der IPSec-Richtlinien-Agent ausgeführt wird, ist UDP-Port 500 möglicherweise nicht für die Verwendung als Quellport verfügbar. Führen net stop PolicyAgentSie aus, um den IPSec-Richtlinien-Agent vorübergehend zu deaktivieren, damit Sie Port 500 verwenden können. Wenn Sie den Test abgeschlossen haben, führen Sie aus net start PolicyAgent.
-cn !<community_name>! Abfragen einer SNMP-Community
  • Der <community_name-Wert> stellt den Namen der abzufragenden SNMP-Community dar. Sie müssen diesen Wert durch Ausrufezeichen begrenzen, wie in der linken Spalte gezeigt.
  • Wenn der SNMP-Dienst nicht am Zielport lauscht, ignoriert -cnPortQry .
  • Der Standardcommunityname lautet public.
-q Ausführen von PortQry im ruhigen Modus
  • Wenn Sie verwenden -q, unterdrückt PortQry alle Bildschirmausgaben mit Ausnahme von Fehlermeldungen.
  • Um andere Ausgaben als Fehlermeldungen anzuzeigen, verwenden Sie -q zusammen mit -l. PortQry zeichnet die normale Ausgabe in der Protokolldatei auf.
  • Wenn bereits eine Protokolldatei vorhanden ist und Sie zusammen mit -lverwenden-q, überschreibt PortQry die vorhandene Protokolldatei ohne Aufforderung.
  • Sie können nicht zusammen mit -o, -roder -p bothverwenden-q.
  • Dieser Parameter ist besonders hilfreich, wenn Sie eine Batchdatei verwenden, um eine PortQry-Befehlszeichenfolge auszuführen.

Hinweise zu Parametern im Befehlszeilenmodus

  • Jeder Portnummerwert muss eine gültige Portnummer zwischen 1 und 65535 (einschließlich) sein.
  • Die -eParameter , -ound -r schließen sich gegenseitig aus. Ein einzelner PortQry-Befehl kann nur einen dieser Parameter verwenden.
  • Eine Abfrage an UDP-Port 389 (LDAP) funktioniert möglicherweise nicht für Domänencontroller, auf denen Windows Server 2008 ausgeführt wird. Um die Verfügbarkeit des Diensts zu überprüfen, der an UDP-Port 389 ausgeführt wird, können Sie Nltest anstelle von PortQry verwenden. Weitere Informationen finden Sie unter Nltest.
  • Wenn Sie Port 135 (RPC) mithilfe -e von oder -oabfragen, gibt PortQry alle Endpunkte zurück, die derzeit bei der RPC-Endpunktzuordnung registriert sind.

    Wichtig

    Wenn Sie verwenden -r, fragt PortQry die RPC-Endpunktzuordnung nicht ab.

  • Wenn Sie Port 53 (DNS) abfragen, sendet PortQry eine DNS-Abfrage für portqry.microsoft.com mithilfe von TCP und UDP. Wenn der Server eine Antwort zurückgibt, ermittelt PortQry, dass der Port LISTENING ist.

    Hinweis

    Es ist nicht wichtig, ob der DNS-Server eine positive oder negative Antwort zurückgibt. Jede Antwort gibt an, dass der Port lauscht.

Verwenden von PortQry im lokalen Modus (Befehlszeilenmodus)

Anstatt einen Port auf einem Remotezielcomputer abzufragen, können Sie PortQry im lokalen Modus verwenden, um detaillierte Informationen zu den TCP-Ports und den UDP-Ports auf dem lokalen Computer abzurufen, auf dem PortQry ausgeführt wird. Verwenden Sie die folgende Syntax, um PortQry im lokalen Modus auszuführen:

portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]

Die Platzhalter in dieser Syntax werden in der folgenden Tabelle der Parameter für den lokalen Modus erläutert:

Parameter Beschreibung Kommentare
-local Abrufen lokaler Informationen
  • Listet alle TCP- und UDP-Portzuordnungen auf, die derzeit auf dem lokalen Computer aktiv sind. Diese Ausgabe ähnelt der Ausgabe, die der netstat.exe -an Befehl generiert.
  • Auf Computern, die PID-zu-Port-Zuordnungen unterstützen, enthält die Ausgabe die PID des Prozesses, der den Port auf dem lokalen Computer verwendet. Wenn Sie die Ausführliche Option (-v) verwenden, enthält die Ausgabe auch die Namen der Dienste, zu denen die PID gehört, und listet alle Module auf, die der Prozess geladen hat. Anhand dieser Informationen können Sie bestimmen, welche Ports einem bestimmten Programm oder Dienst zugeordnet sind, das auf dem Computer ausgeführt wird.
-wport <port_number> Überwachungsport
  • Überwachen sie einen bestimmten Port auf Änderungen. Der <port_number-Wert> stellt den zu überwachenden Port dar.
  • Bei einem TCP-Port meldet PortQry Änderungen zwischen den folgenden Zuständen:
    • CLOSE_WAIT
    • GESCHLOSSEN
    • ETABLIERT
    • FIN_WAIT_1
    • LAST_ACK
    • HÖREN
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Bei UDP-Ports meldet PortQry, ob ein Programm an den Port gebunden ist, aber es wird nicht gemeldet, ob der UDP-Port Datagramme empfängt.
  • Um die Überwachung zu beenden, drücken Sie ESC.
-wpid <pid> Überwachungsprozess-ID (PID)
  • Überwachen Sie eine bestimmte PID auf Änderungen an der Anzahl und dem Status von Verbindungen. Der <process_number-Wert> stellt die zu überwachende PID dar.
  • Um die Überwachung zu beenden, drücken Sie ESC.
-wt <seconds> Überprüfung in einem bestimmten Intervall
  • Überprüfen Sie die status des Ziels, das durch -wport oder "-wpid in dem Intervall identifiziert wird, das durch den Wert /<seconds> dargestellt wird.
  • Der <Sekundenwert> muss zwischen 1 und 1.200 (einschließlich) liegen.
  • Der Standardwert ist 60.
  • Sie können nicht allein oder zusammen mit -localverwenden-wt.
-l <filename.txt> Generieren einer Protokolldatei
  • Der <filename.txt-Wert > stellt den Namen und die Erweiterung der Protokolldatei dar. Dieser Wert darf keine Leerzeichen enthalten.
  • Wenn der Befehl ausgeführt wird, erstellt PortQry die Protokolldatei in dem Verzeichnis, in dem er installiert ist.
  • Wenn die Datei bereits vorhanden ist, fordert PortQry Sie auf, zu bestätigen, dass Sie sie überschreiben möchten (es sei denn, Sie verwenden auch den -y Parameter).
-y Vorherige Protokolldatei überschreiben
  • Wenn Sie zusammen mit -lverwenden-y, überschreibt PortQry die vorhandene Protokolldatei, ohne Sie zur Bestätigung der Aktion aufzufordern.
  • Wenn die PortQry-Befehlszeichenfolge nicht enthält -l, ignoriert -yPortQry .
-v Erstellen einer ausführlichen Ausgabe PortQry bietet zusätzliche Details zur Bildschirmausgabe (und zur Protokolldatei, falls verwendet).

Hinweise zu Parametern im lokalen Modus

  • Die -localParameter , -wportund -wpid schließen sich gegenseitig aus. Sie können nur einen dieser Parameter in einer einzelnen PortQry-Befehlszeichenfolge verwenden.
  • Der -q Parameter funktioniert nicht im lokalen Modus.
  • In einigen Fällen meldet PortQry möglicherweise, dass der System-Idle-Prozess (PID 0) einige TCP-Ports verwendet. Dieses Verhalten kann auftreten, wenn ein lokales Programm eine Verbindung mit einem TCP-Port herstellt und dann beendet wird. Obwohl das Programm nicht mehr ausgeführt wird, bleibt die TCP-Verbindung des Programms mit dem Port möglicherweise mehrere Minuten lang im Zustand "Timed Wait". In einem solchen Fall erkennt PortQry möglicherweise, dass der Port verwendet wird, aber es kann das Programm, das den Port verwendet, nicht identifizieren, da die PID freigegeben wurde. Standardmäßig verbleibt der Port doppelt so lange im Status "Timed Wait" wie die maximale Segmentlebensdauer.
  • Für jeden Prozess meldet PortQry so viele Informationen, auf die es zugreifen kann. Der Zugriff auf einige Informationen ist eingeschränkt. Beispielsweise ist der Zugriff auf Modulinformationen für den Leerlauf- und CSRSS-Prozess verboten, da deren Zugriffseinschränkungen verhindern, dass Code auf Benutzerebene sie öffnet. Um optimale Ergebnisse zu erzielen, führen Sie den Befehl im lokalen Modus im Kontext des lokalen Administrators oder eines Kontos mit ähnlichen Anmeldeinformationen aus.
  • Wenn Sie entweder -wport oder -wpid zusammen mit -lverwenden, verwenden Sie die ESC-TASTE, um PortQry zu unterbrechen und zu beenden, anstelle von STRG+C. Sie müssen ESC drücken, um sicherzustellen, dass PortQry die Protokolldatei ordnungsgemäß schließt und beendet. Wenn Sie STRG+C anstelle von ESC drücken, um PortQry zu beenden, wird die Protokolldatei möglicherweise leer oder beschädigt.

Verwenden von PortQry im interaktiven Modus

Wenn Sie Konnektivitätsprobleme zwischen Computern beheben, müssen Sie möglicherweise viele sich wiederholende Befehle eingeben. Solche Aktionen können mithilfe von PortQry im interaktiven Modus einfacher ausgeführt werden.

Der interaktive Modus ähnelt der interaktiven Funktionalität im DNS-Hilfsprogramm Nslookup oder im Nblookup WINS-Hilfsprogramm.

Verwenden Sie den -i Parameter, um PortQry im interaktiven Modus zu starten. Führen Sie beispielsweise den folgenden Befehl aus:

portqry -i

Die Ausgabe dieses Befehls ähnelt dem folgenden Auszug:

Portqry Interactive Mode

Type 'help' for a list of commands

Default Node: 127.0.0.1

Current option values:  
   end port= 80  
   protocol= TCP  
   source port= 0 (ephemeral)
>

Befehle im interaktiven Modus

Sie können die folgenden Befehle im interaktiven Modus verwenden:

Befehl Beschreibung Kommentare
node <name> oder n <name> Festlegen des Ziels für die Abfrage
  • Der <Name-Wert> stellt den Namen oder die IP-Adresse des abzufragenden Computers dar. Dieser Wert darf keine Leerzeichen enthalten.
  • Der Standardwert ist 127.0.0.1 (der lokale Computer).
query oder q Abfrage senden
  • Fragt das aktuelle Ziel mit den aktuellen Einstellungen ab.
  • Das Standardprotokoll ist tcp.
  • Der Standardzielport ist TCP-Port 80.
  • Der Standardquellport ist Port 0 (ein kurzlebiger Port).
  • Sie können eine von mehreren Tastenkombinationen mit dem query Befehl verwenden, um eine von mehreren gängigen Abfragen auszuführen. Eine Liste der verfügbaren Tastenkombinationen finden Sie unter Abfrageverknüpfungen im interaktiven Modus.
set <option>=<value> Festlegen des Werts einer Abfrageoption
  • In diesem Befehl < stellt option> den Namen der festzulegenden Option und <wert> den neuen Wert der Option dar.
  • Um eine Liste der aktuellen Werte der verfügbaren Optionen anzuzeigen, geben Sie ein set all.
  • Eine Liste der verfügbaren Optionen finden Sie unter Optionen für den interaktiven Modus.
exit Interaktiven Modus verlassen

Abfrageverknüpfungen im interaktiven Modus

Sie können die folgenden Verknüpfungen zusammen mit dem query Befehl verwenden, um allgemeine Abfragen auszuführen, ohne Port- und Protokolloptionen festlegen zu müssen. Verwenden Sie die folgende Syntax:

q <shortcut>

Hinweis

In diesem Befehl < stellt shortcut> eine der Verknüpfungen aus der folgenden Tabelle dar. Wenn Sie die Verknüpfung weglassen, fragt der q Befehl TCP-Port 80 ab.

Verknüpfung Abzufragende Ports
dns TCP-Port 53, UDP-Port 53.
ftp TCP-Port 21
imap TCP-Port 143
ipsec UDP-Port 500
isa TCP-Port 1745, UDP-Port 1745
ldap TCP-Port 389, UDP-Port 389
l2tp UDP-Port 1701
mail TCP-Ports 25, 110 und 143
pop3 TCP-Port 110
rpc TCP-Port 135, UDP-Port 135
smtp TCP-Port 25
snmp UDP-Port 161
sql TCP-Port 1433, UDP-Port 1434
tftp UDP-Port 69

Beispielsweise entspricht die Eingabe q dns im interaktiven Modus der Ausführung portqry -n 127.0.0.1 -p both -e 135 im regulären Befehlszeilenmodus.

Optionen für den interaktiven Modus

Sie können den set Befehl verwenden, um Optionen wie den Quellport oder die Langsame Linkverzögerung festzulegen. Verwenden Sie die folgende Syntax:

set <option>=<value>

Hinweis

In diesem Befehl < stellt option> den Namen der festzulegenden Option dar, und <value> stellt den neuen Wert der Option dar.

Option Beschreibung Kommentare
set all Anzeigen der aktuellen Werte von Optionen
set port=<port_number>
set e=<port_number>
Angeben des Zielports Der <port_number> Wert stellt den Port dar, der auf dem Zielcomputer abfragt werden soll.
set sport=<port_number>
set sp=<port_number>
Angeben des Quellports
  • Der <port_number-Wert> stellt den Port dar, den PortQry zum Senden der Abfrage verwendet.
  • PortQry kann keinen Port verwenden, den ein anderer Prozess bereits verwendet.
  • Wenn Sie eine Portnummer von 0 angeben, verwendet PortQry einen kurzlebigen Port.
set protocol=<protocol>
set p=<protocol>
Angeben des zu verwendenden Protokolls Der <Protokollwert> stellt den Typ des abzufragenden Ports dar (tcp, udpoder both).
set cn=<community_name> Angeben einer SNMP-Community
  • Der <community_name-Wert> stellt den Namen der abzufragenden SNMP-Community dar.
  • Wenn der SNMP-Dienst nicht am Zielport lauscht, ignoriert -cnPortQry .
  • Der Standardcommunityname lautet public.
set nr Umgekehrte Namenssuche deaktivieren oder aktivieren
  • Wenn Sie eine IP-Adresse als Abfrageziel festgelegt haben, löst PortQry die IP-Adresse standardmäßig in einen Namen auf. Wenn Sie diese Option ändern, überspringt PortQry den Schritt zur Namensauflösung.
  • Führen Sie ein zweites Mal aus, set nr um die Umgekehrte Namenssuche wieder zu aktivieren.
set sl Langsame Verbindungsverzögerung aktivieren oder deaktivieren
  • Wenn Sie diese Option ändern, verdoppelt PortQry die Zeitspanne, in der auf eine Antwort von einem UDP-Port gewartet wird, bevor PortQry feststellt, dass der Port NICHT LAUSCHT oder dass er GEFILTERT ist. Wenn Sie langsame oder unzuverlässige Netzwerkverbindungen abfragen, ist die normale Wartezeit möglicherweise zu kurz, um eine Antwort zu erhalten.
  • Führen Sie ein zweites Mal aus, set sl um die Verzögerung für langsame Verbindungen wieder zu deaktivieren.

Angenommen, Sie möchten einen Computer mit der IP-Adresse 10.0.1.10 abfragen. Geben Sie an der Eingabeaufforderung im interaktiven Modus ein n 10.0.1.10. Dieser Befehl erzeugt eine Ausgabe, die dem folgenden Auszug ähnelt:

Default Node: 10.0.1.10

>

Um eine DNS-Abfrage zu senden, geben Sie q dns an der Eingabeaufforderung im interaktiven Modus ein. Dieser Befehl erzeugt eine Ausgabe, die dem folgenden Auszug ähnelt:

resolving service name using local services file...
UDP port resolved to the 'domain' service

IP address resolved to myserver.contoso.com

querying...

UDP port 53 (domain service): LISTENING

>

Anpassen der Zuordnung zwischen Ports und Diensten

Standardmäßig verfügt jeder Windows-basierte Computer über eine Dienstdatei, die sich im Ordner %SYSTEMROOT%\System32\Drivers\Etc befindet. PortQry verwendet diese Datei, um Portnummern in die entsprechenden Dienstnamen aufzulösen. PortQry verwendet diese Informationen, um das Format für seine Abfragen auszuwählen. Sie können diese Datei bearbeiten, um PortQry anweisen, formatierte Nachrichten an einen alternativen Port zu senden. Der folgende Eintrag wird beispielsweise in einer typischen Dienstdatei angezeigt:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Sie können diesen Porteintrag bearbeiten oder einen zusätzlichen Eintrag hinzufügen. Um zu erzwingen, dass PortQry LDAP-Abfragen an Port 1025 sendet, ändern Sie den Eintrag wie folgt:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Beispiele

In den folgenden Beispielen wird veranschaulicht, wie PortQry und die zugehörigen Parameter verwendet werden:

Lokaler Modus

Befehlszeilenmodus

Abfragen des lokalen Computers

Die Ausgabe von portqry -local ähnelt dem folgenden Auszug:

TCP/UDP Port Usage

96 active ports found

Port Local IPState Remote IP:Port  
TCP 80 0.0.0.0 LISTENING 0.0.0.0:18510  
TCP 80 169.254.149.9 TIME WAIT 169.254.74.55:3716  
TCP 80 169.254.149.9 TIME WAIT 169.254.200.222:3885  
TCP 135 0.0.0.0 LISTENING 0.0.0.0:10280  
UDP 135 0.0.0.0 :  
UDP 137 169.254.149.9 :  
UDP 138 169.254.149.9 :  
TCP 139 169.254.149.9 LISTENING 0.0.0.0:43065  
TCP 139 169.254.149.9 ESTABLISHED 169.254.4.253:4310  
TCP 139 169.254.149.9 ESTABLISHED 169.254.74.55:3714  

Abfragen des lokalen Computers, wenn der Zugriff möglicherweise eingeschränkt ist

Wenn Sie PortQry wie im vorherigen Beispiel im lokalen Modus ausführen, wird möglicherweise eine Ausgabe angezeigt, die dem folgenden Auszug ähnelt. Eine solche Ausgabe gibt an, dass der von PortQry verwendete Sicherheitskontext nicht über ausreichende Berechtigungen für den Zugriff auf alle angeforderten Informationen verfügt.

Port and Module Information by Process

Note: restrictions applied to some processes may
prevent Portqry from accessing more information

For best results run Portqry in the context of
the local administrator

======================================================  
Process ID: 0 (System Idle Process)

PIDPortLocal IPState Remote IP:Port  
0TCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80  
0TCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445  

Port Statistics

TCP mappings: 2  
UDP mappings: 0

TCP ports in a TIME WAIT state: 2 = 100.00%

Could not access module information for this process

======================================================

Überwachen einer Prozess-ID mithilfe eines bestimmten Intervalls

Der folgende Befehl überwacht einen bestimmten Prozess:

portqry.exe -wpid 1276 -wt 2 -v -l pid.txt

Daher führt PortQry die folgenden Aktionen aus:

  • Identifiziert den Prozess mit der PID 1276 und überprüft alle zwei Sekunden die status der Ports, die er verwendet, bis Sie ESC drücken.
  • Erstellt die Protokolldatei pid.txt. Wenn bereits eine Datei mit diesem Namen vorhanden ist, werden Sie von PortQry aufgefordert, zu bestätigen, dass Sie die Datei überschreiben möchten.
  • Zeichnet alle Ausgaben in der Protokolldatei auf, einschließlich der zusätzlichen ausführlichen Ausgabe.

Der Inhalt der Protokolldatei ähnelt dem folgenden Auszug:

PortQry Version 2.0 Log File
  
System Date: <DateTime>
  
Command run:  
portqry -wpid 1276 -wt 2 -v -l pid.txt
  
Local computer name:
  
host123
  
Watching PID: 1276
  
Checking for changes every 2 seconds
  
verbose output requested
  
Service Name: DNS  
Display Name: DNS Server  
Service Type: runs in its own process

============
System Date: <DateTime>

======================================================

Process ID: 1276 (dns.exe)

Service Name: DNS
Display Name: DNS Server
Service Type: runs in its own process

PIDPortLocal IPState Remote IP:Port
1276TCP 53 0.0.0.0 LISTENING 0.0.0.0:2160
1276TCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074
1276UDP 1086 0.0.0.0 :
1276UDP 2126 0.0.0.0 :
1276UDP 53 127.0.0.1 :
1276UDP 1085 127.0.0.1 :
1276UDP 53 169.254.11.96 :

Port Statistics

TCP mappings: 2
UDP mappings: 5

TCP ports in a LISTENING state: 2 = 100.00%

Loaded modules:
C:\WINDOWS\System32\dns.exe (0x01000000)
C:\WINDOWS\system32\ntdll.dll (0x77F40000)
C:\WINDOWS\system32\kernel32.dll (0x77E40000)
C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)
C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)
C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)
C:\WINDOWS\System32\WS2_32.dll (0x71C00000)
C:\WINDOWS\System32\WS2HELP.dll (0x71BF0000)
C:\WINDOWS\system32\USER32.dll (0x77D00000)
C:\WINDOWS\system32\GDI32.dll (0x77C00000)
C:\WINDOWS\System32\NETAPI32.dll (0x71C40000)

Angeben eines Ziels und protokolls

Hinweis

Jedes der Beispiele in diesem Abschnitt fragt Port 80 ab, den Standardport.

Der folgende Befehl fragt den TCP-Standardport auf einem Computer ab, der mithilfe des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) angegeben wird:

portqry -n myDomainController.example.com -p tcp

Der folgende Befehl fragt den STANDARD-UDP-Port auf einem Computer ab, der mit seinem Computernamen angegeben wird:

portqry -n myServer -p udp

Der folgende Befehl fragt die TCP- und UDP-Standardports eines Computers ab, der mithilfe seiner IP-Adresse angegeben wird:

portqry -n 192.168.1.20 -p both

Der folgende Befehl führt dieselbe Abfrage wie der vorherige Befehl aus, überspringt jedoch den Schritt zur Namensauflösung:

portqry -n 192.168.1.20 -p both -nr

Der folgende Befehl fragt den TCP-Standardport eines Webservers ab:

portqry -n www.widgets.microsoft.com

Angeben eines oder mehrerer Zielports

Der folgende Befehl testet den SMTP-Dienst eines E-Mail-Servers durch Abfragen von TCP-Port 25:

portqry -n mail.example.com -p tcp -e 25

Der folgende Befehl fragt TCP-Port 60897 und UDP-Port 60897 eines Computers ab, der über die IP-Adresse 192.168.1.20 verfügt:

portqry -n 192.168.1.20 -p both -e 60897

Der folgende Befehl fragt die UDP-Ports 139, 1025 und 135 (in dieser Sequenz) auf dem Computer "myServer" ab:

portqry -n myServer -p udp -o 139,1025,135

Der folgende Befehl fragt den Portbereich von Port 135 bis Einschließlich Port 139 auf dem Computer "myServer" ab:

portqry -n myServer -p udp -r 135:139

Angeben einer Protokolldatei für die PortQry-Ausgabe

Der folgende Befehl fragt TCP-Port 143 auf mail.widgets.microsoft.com ab und zeichnet die Ausgabe in der portqry.txt-Datei auf. Wenn die Datei bereits vorhanden ist, überschreibt PortQry sie, ohne zur Bestätigung aufzufordern.

portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y

Abfragen über einen langsamen Link

Der folgende Befehl fragt die TCP-Ports 143, 110 und 25 auf mail.widgets.microsoft.com ab. Für jeden Zielport wartet PortQry doppelt so lange wie üblich auf eine Antwort.

  portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl

Angeben eines Quellports

Der folgende Befehl verwendet den UDP-Port 3001 (sofern verfügbar) auf dem lokalen Computer, um eine Abfrage an UDP-Port 53 unter 192.168.1.20 zu senden. Wenn ein Dienst an diesem Port lauscht und auf die Abfrage antwortet, sendet er die Antwort an UDP-Port 3001 auf dem lokalen Computer.

portqry -p udp -e 53 -sp 3001 -n 192.168.1.20

Der folgende Befehl verwendet den UDP-Port 3000 (sofern verfügbar) auf dem lokalen Computer, um eine Abfrage an UDP-Port 389 auf myDomainController.contoso.com zu senden. Standardmäßig sollte der LDAP-Dienst an diesem Port lauschen. Wenn der LDAP-Dienst auf die erste Abfrage antwortet, verwendet PortQry einen kurzlebigen Quellport, um die formatierte Abfrage zu senden und Antworten zu empfangen.

portqry -n myDomainController.contoso.com -e 389 -sp 3000

Verwenden einer Batchdatei zum Ausführen von PortQry im ruhelosen Modus

Der folgende Text ist ein Beispiel für eine Batchdatei, die PortQry im stillen Modus ausführt:

:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end

Wenn diese Batchdatei ausgeführt wird, erzeugt PortQry eine Protokolldatei mit dem Namen pqlog.txt. Der Inhalt dieser Datei sieht wie folgt aus:

PortQry Version 2.0 Log File

System Date: Thu Sep 16 10:35:03 2021

Command run:
 portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q

Local computer name:

 SOURCESERVER

Querying target system called:

 169.254.18.22

TCP port 443 (https service): LISTENING


========= end of log file ========= 

Abfrageport 135 (RPC-Dienst)

Der folgende Befehl fragt UDP-Port 135 auf dem Computer myServer ab. Standardmäßig sollte der RPC-Dienst an diesem Port lauschen.

portqry -n myServer -p udp -e 135

Daher führt PortQry die folgenden Aktionen aus:

  • PortQry verwendet die Datei Dienste im Ordner %SYSTEMROOT%\System32\Drivers\Etc , um UDP-Port 135 in einen Dienst aufzulösen. Mithilfe der Standardkonfiguration löst PortQry den Port in den RPC-Endpunktzuordnungsdienst (Epmap) auf.
  • PortQry sendet ein unformatiertes Benutzerdatengramm an UDP-Port 135 auf dem Zielcomputer.
    PortQry empfängt keine Antwort vom Zielport. Dies liegt daran, dass der RPC-Endpunktzuordnungsdienst nur auf eine ordnungsgemäß formatierte RPC-Abfrage antwortet. PortQry meldet, dass der Port LISTENING oder FILTERED ist.
  • PortQry erstellt eine ordnungsgemäß formatierte RPC-Abfrage, die alle Endpunkte anfordert, die derzeit bei der RPC-Endpunktzuordnung registriert sind. PortQry sendet diese Abfrage an den UDP-Port 135 auf dem Zielcomputer.
  • Abhängig von der Antwort führt PortQry eine der folgenden Aktionen aus:
    • Wenn PortQry eine Antwort auf diese Abfrage empfängt, gibt PortQry die gesamte Antwort an den Benutzer zurück und meldet, dass der Port LAUSCHT.
    • Wenn PortQry keine Antwort auf diese Abfrage empfängt, wird gemeldet, dass der Port FILTERED ist.
UDP port 135 (epmap service): LISTENING or FILTERED  
Querying Endpoint Mapper Database...  
Server's response:  

UUID: 50abc2a4-574d-40b3-9d66-ee4fd5fba076
ncacn_ip_tcp:169.254.12.191[4144]

UUID: ecec0d70-a603-11d0-96b1-00a0c91ece30 NTDS Backup Interface
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncacn_ip_tcp:169.254.12.191[1030]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncadg_ip_udp:169.254.12.191[1032]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\POLICYAGENT]

Total endpoints found: 6

==== End of RPC Endpoint Mapper query response ====

UDP port 135 is LISTENING

Anhand dieser Ausgabe können Sie nicht nur ermitteln, ob der Dienst am Port lauscht, sondern auch, welche Dienste oder Programme bei der RPC-Endpunktzuordnungsdatenbank auf dem Zielcomputer registriert sind. Die Ausgabe enthält den universellen eindeutigen Bezeichner (Universal Unique Identifier, UUID) für jedes Programm, den kommentierten Namen (sofern vorhanden), das Protokoll, das jedes Programm verwendet, die Netzwerkadresse, an die das Programm gebunden ist, und den Endpunkt des Programms in eckigen Klammern.

Hinweis

Wenn Sie die -r Option im Befehl PortQry angeben, um einen Bereich von Ports zu überprüfen, fragt PortQry die RPC-Endpunktzuordnung nicht nach Endpunktinformationen ab. Dieser Parameter beschleunigt das Scannen eines Bereichs von Ports.