Condividi tramite


Uso dello strumento da riga di comando PortQry

PortQry è uno strumento da riga di comando che è possibile usare per risolvere i problemi di connettività TCP/IP. Questo strumento segnala lo stato delle porte TCP e UDP (User Datagram Protocol) di destinazione in un computer locale o in un computer remoto. Fornisce anche informazioni dettagliate sull'utilizzo delle porte del computer locale.

Poiché PortQry è destinato a essere usato come strumento di risoluzione dei problemi, gli utenti che lo usano per risolvere un problema specifico devono avere una conoscenza sufficiente dell'ambiente di elaborazione.

È possibile usare PortQry da un prompt dei comandi in una delle diverse modalità:

  • Modalità della riga di comando. È possibile usare questa modalità per risolvere i problemi relativi ai computer locali o remoti.
  • Modalità locale. In questa modalità è possibile usare diversi parametri destinati alla risoluzione dei problemi del computer locale.
  • Modalità interattiva. Analogamente alla modalità della riga di comando, ma è possibile usare i comandi di scelta rapida e i parametri.

Note

È possibile scaricare uno strumento separato, denominato PortQryUI, che include un'interfaccia utente grafica per PortQry. PortQryUI offre diverse funzionalità che possono semplificare l'uso di PortQry. Per ottenere lo strumento PortQryUI, vedere PortQryUI - Interfaccia utente per lo scanner della porta della riga di comando di PortQry.

Si applica a: versioni supportate di Windows

Test e risultati di PortQry

Gli strumenti di analisi delle porte tipici segnalano che la porta ha uno stato DI ASCOLTO se la porta UDP di destinazione non restituisce un messaggio ICMP (Internet Control Message Protocol) "Destination unreachable". Questo risultato potrebbe non essere accurato per uno o entrambi i motivi seguenti:

  • Se non è presente alcuna risposta a un datagramma diretto, la porta di destinazione potrebbe essere FILTRATA.
  • La maggior parte dei servizi non risponde a un datagramma utente non formattato inviato. In genere, il servizio o il programma in ascolto di una porta risponde solo a un messaggio che usa un livello sessione o un protocollo del livello applicazione specifico.

Per ottenere risultati più accurati e utili, PortQry usa un processo di test in due passaggi.

Passaggio 1: Test dello stato della porta

PortQry segnala lo stato di una porta come uno dei tre valori seguenti:

  • ASCOLTO: questa risposta indica che un processo è in ascolto sulla porta di destinazione. PortQry ha ricevuto una risposta dalla porta di destinazione.
  • NON IN ASCOLTO: questa risposta indica che non è in ascolto alcun processo sulla porta di destinazione. PortQry ha ricevuto uno dei messaggi ICMP seguenti dalla porta di destinazione:

    Porta non raggiungibile di destinazione non raggiungibile

  • FILTRATO: questa risposta indica che la porta di destinazione viene filtrata. PortQry non ha ricevuto una risposta dalla porta di destinazione. Un processo può essere o meno in ascolto sulla porta di destinazione. Per impostazione predefinita, PortQry esegue una query su una porta TCP tre volte prima di restituire una risposta DI FILTERED e esegue una query su una porta UDP una volta prima di restituire una risposta di FILTERED.

Passaggio 2: Test specializzati

Se non è presente alcuna risposta da una porta UDP di destinazione, PortQry segnala che la porta è LISTENING o FILTERED. Tuttavia, quando si risolve un problema di connettività, è utile sapere se una porta viene filtrata o è in ascolto. Ciò è particolarmente vero in un ambiente che contiene uno o più firewall.

PortQry affina il report sullo stato della porta usando un secondo set di test che possono interagire con il servizio o il programma in ascolto sulla porta di destinazione. Per questo test, PortQry esegue le operazioni seguenti:

  • PortQry usa il file Servizi che si trova nella cartella %SYSTEMROOT%\System32\Drivers\Etc per determinare il servizio in ascolto su ogni porta.
  • PortQry crea un messaggio appositamente costruito per il servizio o il programma previsto e quindi invia tale messaggio alla porta di destinazione. A seconda del servizio o del programma, il messaggio può richiedere informazioni utili per la risoluzione dei problemi, ad esempio:
    • Informazioni sul dominio e sul controller di dominio (query LDAP)
    • Porte e servizi client registrati (query RPC)
    • Indica se è consentito l'accesso anonimo (query FTP)
    • Indirizzo MAC (query NetBIOS)
    • Mspclnt.ini informazioni sui file (query ISA Server)
  • PortQry analizza, formatta e quindi restituisce la risposta dal servizio o dal programma come parte del report di test.

Test aggiuntivi per la risoluzione dei problemi del computer locale

Quando è necessario risolvere i problemi relativi alle porte nel computer in cui è installato PortQry, usare PortQry in modalità locale. Quando si usano i parametri in modalità locale nella riga di comando, è possibile eseguire attività come le seguenti nel computer locale:

  • Enumerare i mapping delle porte
  • Monitorare una porta specifica per le modifiche
  • Monitorare un processo specifico per le modifiche

Per altre informazioni, vedere Uso di PortQry in modalità locale (riga di comando).

Uso di PortQry in modalità della riga di comando

È possibile eseguire PortQry al prompt dei comandi nello stesso modo di qualsiasi altro strumento da riga di comando. La maggior parte degli esempi in questo articolo illustra i comandi portQry della riga di comando. Nella modalità della riga di comando è possibile aggiungere più opzioni alla stringa di comando per specificare la query da eseguire e come eseguirla. Per eseguire PortQry in modalità della riga di comando, eseguire un comando che usa la sintassi seguente:

portqry.exe -n <name_to_query> [options]

Note

In questo comando name_to_query <> è l'indirizzo IP, il nome del computer o il dominio su cui eseguire la query. Questo parametro è obbligatorio. [opzioni] sono i parametri facoltativi.

Parametri di PortQry per la modalità della riga di comando

I parametri seguenti sono disponibili in modalità normale della riga di comando:

Parametro Descrizione Commenti
-n <name> Eseguire una query sulla destinazione specifica
  • Questo è l'unico parametro obbligatorio per la modalità della riga di comando.
  • Il <valore del nome> rappresenta il nome o l'indirizzo IP del computer su cui eseguire una query. Questo valore non può includere spazi.
-p <protocol> Usare il protocollo specificato
  • Il <valore del protocollo> rappresenta il tipo di porta da eseguire per la query (i valori possibili sono tcp, udpo both).
  • Il valore predefinito è tcp.
-e <port_number> Specificare la porta di destinazione (nota anche come "endpoint")
  • Il <valore port_number> rappresenta la porta su cui eseguire una query nel computer di destinazione.
  • Il valore predefinito è 80.
-o <port_number>,<port_number> Specificare più porte di destinazione in una sequenza I <valori port_number,port_number<>> rappresentano un elenco delimitato da virgole di numeri di porta da eseguire una query in una sequenza. Non usare spazi intorno alle virgole.
-r <port_number>:<port_number> Specificare un intervallo di porte di destinazione
  • I <valori port_number>:<port_number> rappresentano i numeri di porta iniziale e finale, separati da due punti. Non usare spazi intorno ai due punti.
  • Il numero di porta iniziale deve essere inferiore al numero di porta finale.
-l <filename.txt> Generare un file di log
  • Il <valore filename.txt> rappresenta il nome e l'estensione del file di log. Questo valore non può includere spazi.
  • Quando il comando viene eseguito, PortQry crea il file di log nella directory in cui è installato.
  • Se il file esiste già, PortQry chiede di confermare che si vuole sovrascriverlo (a meno che non si usi anche il -y parametro ).
-y Sovrascrivere il file di log precedente
  • Quando si usa -y insieme -la , PortQry sovrascrive il file di log esistente senza chiedere conferma dell'azione.
  • Se la stringa di comando PortQry non include -l, PortQry ignora -y.
-sl Attendere tempo aggiuntivo per la risposta (noto anche come ritardo del collegamento lento) Usare questo parametro per raddoppiare il tempo in cui PortQry attende una risposta da una porta UDP prima che PortQry determini che la porta non è IN ASCOLTO o che sia FILTRATA. Quando si esegue una query su collegamenti di rete lenti o inaffidabili, il tempo di attesa normale potrebbe essere troppo breve per ricevere una risposta.
-nr Ignorare la ricerca del nome inverso
  • Per impostazione predefinita, quando si usa -n per specificare un indirizzo IP per il computer di destinazione, PortQry esegue una ricerca del nome inverso per risolvere l'indirizzo IP in un nome. Questo processo può richiedere molto tempo, soprattutto se PortQry non riesce a risolvere l'indirizzo IP. Usare -nr per ignorare questo passaggio della query.
  • Se si usa -n per specificare un computer o un nome di dominio, PortQry ignora -nr.
-sp <port_number> Eseguire una query da una porta di origine specifica
  • Il <valore port_number> rappresenta la porta usata da PortQry per inviare la query.
  • PortQry non può usare una porta già usata da un altro processo. Se la porta specificata è già in uso, PortQry restituisce il messaggio di errore seguente:
    Impossibile utilizzare la porta di origine specificata.
    La porta è già in uso.
    Specificare una porta non in uso ed eseguire di nuovo il comando.
  • Nei casi seguenti, PortQry usa la porta specificata per il primo test della query, ma non il secondo test:
    • RPC (porte TCP e UDP 135)
    • LDAP (porta UDP 389)
    • Query sullo stato dell'adapter NetBIOS (porta UDP 137)
    In questi casi, PortQry usa una porta temporanea per il secondo test. In questo caso, PortQry registra "Using ephemeral source port" (Uso della porta di origine temporanea) nell'output.
  • Se il computer in cui è installato PortQry esegue anche l'agente dei criteri IPSec, la porta UDP 500 potrebbe non essere disponibile per l'uso come porta di origine. Per disattivare temporaneamente l'agente dei criteri IPSec in modo che sia possibile usare la porta 500, eseguire net stop PolicyAgent. Al termine del test, eseguire net start PolicyAgent.
-cn !<community_name>! Eseguire query su una community SNMP
  • Il <valore community_name> rappresenta il nome della community SNMP su cui eseguire la query. È necessario delimitare questo valore usando punti esclamativi, come illustrato nella colonna sinistra.
  • Se il servizio SNMP non è in ascolto sulla porta di destinazione, PortQry ignora -cn.
  • Il nome della community predefinito è public.
-q Eseguire PortQry in modalità non interattiva
  • Quando si usa -q, PortQry elimina tutti gli output dello schermo, ad eccezione dei messaggi di errore.
  • Per visualizzare l'output diverso dai messaggi di errore, usare -q insieme a -l. PortQry registra l'output normale nel file di log.
  • Se esiste già un file di log e si usa -q insieme -la , PortQry sovrascrive il file di log esistente senza chiedere conferma.
  • Non è possibile usare -q insieme -oa , -ro -p both.
  • Questo parametro è particolarmente utile quando si usa un file batch per eseguire una stringa di comando PortQry.

Osservazioni per i parametri in modalità della riga di comando

  • Qualsiasi valore del numero di porta deve essere un numero di porta valido compreso tra 1 e 65535 inclusi.
  • I -eparametri , -oe -r si escludono a vicenda. Un singolo comando PortQry può usare solo uno di questi parametri.
  • Una query sulla porta UDP 389 (LDAP) potrebbe non funzionare nei controller di dominio che eseguono Windows Server 2008. Per verificare la disponibilità del servizio in esecuzione sulla porta UDP 389, è possibile usare Nltest anziché PortQry. Per altre informazioni, vedere Nltest.
  • Quando si esegue una query sulla porta 135 (RPC) usando -e o -o, PortQry restituisce tutti gli endpoint attualmente registrati con il mapper dell'endpoint RPC.

    Importante

    Quando si usa , PortQry non esegue -rquery sul mapper dell'endpoint RPC.

  • Quando si esegue una query sulla porta 53 (DNS), PortQry invia una query DNS per portqry.microsoft.com usando sia TCP che UDP. Se il server restituisce una risposta, PortQry determina che la porta è LISTENING.

    Note

    Non è importante se il server DNS restituisce una risposta positiva o negativa. Qualsiasi risposta indica che la porta è in ascolto.

Uso di PortQry in modalità locale (riga di comando)

Anziché eseguire query su una porta in un computer di destinazione remoto, è possibile usare PortQry in modalità locale per ottenere informazioni dettagliate sulle porte TCP e sulle porte UDP nel computer locale in cui viene eseguito PortQry. Usare la sintassi seguente per eseguire PortQry in modalità locale:

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

I segnaposto in questa sintassi sono illustrati nella tabella seguente dei parametri della modalità locale:

Parametro Descrizione Commenti
-local Recuperare informazioni locali
  • Enumerare tutti i mapping delle porte TCP e UDP attualmente attivi nel computer locale. Questo output è simile all'output generato dal netstat.exe -an comando.
  • Nei computer che supportano mapping da PID a porta, l'output include il PID del processo che usa la porta nel computer locale. Se si usa l'opzione dettagliata (-v), l'output include anche i nomi dei servizi a cui appartiene il PID ed elenca tutti i moduli caricati dal processo. È possibile utilizzare queste informazioni per determinare quali porte sono associate a un determinato programma o servizio in esecuzione nel computer.
-wport <port_number> Porta espressioni di controllo
  • Monitorare una porta specifica per le modifiche. Il <valore port_number> rappresenta la porta da monitorare.
  • Nel caso di una porta TCP, PortQry segnala le modifiche tra gli stati seguenti:
    • CLOSE_WAIT
    • CHIUSO
    • STABILITO
    • FIN_WAIT_1
    • LAST_ACK
    • ASCOLTARE
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Per le porte UDP, PortQry segnala se un programma è associato alla porta, ma non segnala se la porta UDP riceve i datagrammi.
  • Per arrestare il monitoraggio, premere ESC.
-wpid <pid> WATCH PROCESS ID (PID)
  • Monitorare un PID specifico per le modifiche apportate al numero e allo stato delle connessioni. Il <valore process_number> rappresenta il PID da monitorare.
  • Per arrestare il monitoraggio, premere ESC.
-wt <seconds> Controllare a intervalli specifici
  • Controllare lo stato della destinazione identificata da -wport o all'intervallo rappresentato dal valore /<seconds>."-wpid
  • Il <valore dei secondi> deve essere compreso tra uno e 1.200 (inclusi).
  • Il valore predefinito è 60.
  • Non è possibile usare -wt da solo o insieme a -local.
-l <filename.txt> Generare un file di log
  • Il <valore filename.txt> rappresenta il nome e l'estensione del file di log. Questo valore non può includere spazi.
  • Quando il comando viene eseguito, PortQry crea il file di log nella directory in cui è installato.
  • Se il file esiste già, PortQry chiede di confermare che si vuole sovrascriverlo (a meno che non si usi anche il -y parametro ).
-y Sovrascrivere il file di log precedente
  • Quando si usa -y insieme -la , PortQry sovrascrive il file di log esistente senza chiedere conferma dell'azione.
  • Se la stringa di comando PortQry non include -l, PortQry ignora -y.
-v Produrre output dettagliato PortQry fornisce dettagli aggiuntivi all'output dello schermo (e al file di log, se usato).

Osservazioni per i parametri in modalità locale

  • I -localparametri , -wporte -wpid si escludono a vicenda. È possibile usare solo uno di questi parametri in una singola stringa di comando portQry.
  • Il -q parametro non funziona in modalità locale.
  • In alcuni casi, PortQry potrebbe segnalare che il processo di inattività di sistema (PID 0) usa alcune porte TCP. Questo comportamento può verificarsi se un programma locale si connette a una porta TCP e quindi si arresta. Anche se il programma non è più in esecuzione, la connessione TCP del programma alla porta potrebbe essere lasciata in uno stato "Attesa temporizzato" per alcuni minuti. In tal caso, PortQry potrebbe rilevare che la porta è in uso, ma non è in grado di identificare il programma che usa la porta perché il PID è stato rilasciato. Per impostazione predefinita, la porta rimane in uno stato "Timed Wait" per due volte fino a quando la durata massima del segmento.
  • Per ogni processo, PortQry segnala la quantità di informazioni a cui può accedere. L'accesso ad alcune informazioni è limitato. Ad esempio, l'accesso alle informazioni sui moduli per i processi Idle e CSRSS è vietato perché le restrizioni di accesso impediscono l'apertura del codice a livello di utente. Per ottenere risultati ottimali, eseguire il comando in modalità locale nel contesto dell'amministratore locale o di un account con credenziali simili.
  • Quando si usa -wport o -wpid insieme a -l, usare il tasto ESC per interrompere e uscire da PortQry invece di CTRL+C. È necessario premere ESC per assicurarsi che PortQry chiuda correttamente il file di log ed esce. Se si preme CTRL+C anziché ESC per arrestare PortQry, il file di log potrebbe diventare vuoto o danneggiato.

Uso di PortQry in modalità interattiva

Quando si risolvono i problemi di connettività tra computer, potrebbe essere necessario digitare molti comandi ripetitivi. Tali azioni potrebbero essere eseguite più facilmente usando PortQry in modalità interattiva.

La modalità interattiva è simile alla funzionalità interattiva nell'utilità DNS Nslookup o nell'utilità WINS di Nblookup.

Per avviare PortQry in modalità interattiva, usare il -i parametro . Ad esempio, eseguire il comando seguente:

portqry -i

L'output di questo comando è simile al seguente estratto:

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)
>

Comandi in modalità interattiva

È possibile usare i comandi seguenti in modalità interattiva:

Comando Descrizione Commenti
node <name> o n <name> Impostare la destinazione su cui eseguire la query
  • Il <valore del nome> rappresenta il nome o l'indirizzo IP del computer su cui eseguire una query. Questo valore non può includere spazi.
  • Il valore predefinito è 127.0.0.1 (il computer locale).
query o q Invia query
  • Esegue una query sulla destinazione corrente usando le impostazioni correnti.
  • Il protocollo predefinito è tcp.
  • La porta di destinazione predefinita è la porta TCP 80.
  • La porta di origine predefinita è la porta 0 (una porta temporanea).
  • È possibile usare uno dei diversi tasti di scelta rapida con il query comando per eseguire una delle diverse query comuni. Per un elenco dei collegamenti disponibili, vedere Collegamenti alle query in modalità interattiva.
set <option>=<value> Impostare il valore di un'opzione di query
  • In questo comando, <l'opzione> rappresenta il nome dell'opzione da impostare e <il valore> rappresenta il nuovo valore dell'opzione.
  • Per visualizzare un elenco dei valori correnti delle opzioni disponibili, immettere set all.
  • Per un elenco delle opzioni disponibili, vedere Opzioni della modalità interattiva.
exit Lasciare la modalità interattiva

Collegamenti alle query in modalità interattiva

È possibile usare i collegamenti seguenti insieme al query comando per eseguire query comuni senza dover impostare le opzioni di porta e protocollo. Usare la sintassi seguente:

q <shortcut>

Note

In questo comando il <collegamento> rappresenta uno dei collegamenti della tabella seguente. Se si omette il collegamento, il q comando esegue una query sulla porta TCP 80.

Collegamenti Porte su cui eseguire query
dns Porta TCP 53, porta UDP 53.
ftp Porta TCP 21
imap Porta TCP 143
ipsec Porta UDP 500
isa Porta TCP 1745, porta UDP 1745
ldap Porta TCP 389, porta UDP 389
l2tp Porta UDP 1701
mail Porte TCP 25, 110 e 143
pop3 Porta TCP 110
rpc Porta TCP 135, porta UDP 135
smtp Porta TCP 25
snmp Porta UDP 161
sql Porta TCP 1433, porta UDP 1434
tftp Porta UDP 69

Ad esempio, l'immissione q dns in modalità interattiva equivale all'esecuzione portqry -n 127.0.0.1 -p both -e 135 in modalità normale della riga di comando.

Opzioni per la modalità interattiva

È possibile usare il set comando per impostare opzioni come la porta di origine o il ritardo del collegamento lento. Usare la sintassi seguente:

set <option>=<value>

Note

In questo comando, <l'opzione> rappresenta il nome dell'opzione da impostare e< il valore> rappresenta il nuovo valore dell'opzione.

Opzione Descrizione Commenti
set all Visualizzare i valori correnti delle opzioni
set port=<port_number>
set e=<port_number>
Specificare la porta di destinazione Il <valore port_number> rappresenta la porta su cui eseguire una query nel computer di destinazione.
set sport=<port_number>
set sp=<port_number>
Specificare la porta di origine
  • Il <valore port_number> rappresenta la porta usata da PortQry per inviare la query.
  • PortQry non può usare una porta già usata da un altro processo.
  • Se si specifica un numero di porta pari a zero, PortQry usa una porta temporanea.
set protocol=<protocol>
set p=<protocol>
Specificare il protocollo da usare Il <valore del protocollo> rappresenta il tipo di porta da eseguire per la query (tcp, udpo both).
set cn=<community_name> Specificare una community SNMP
  • Il <valore community_name> rappresenta il nome della community SNMP su cui eseguire la query.
  • Se il servizio SNMP non è in ascolto sulla porta di destinazione, PortQry ignora -cn.
  • Il nome della community predefinito è public.
set nr Attivare o disattivare la ricerca del nome inverso
  • Per impostazione predefinita, se è stato impostato un indirizzo IP come destinazione della query, PortQry risolve l'indirizzo IP in un nome. Se si modifica questa opzione, PortQry ignora il passaggio di risoluzione dei nomi.
  • Per riattivare la ricerca del nome inverso, eseguire set nr una seconda volta.
set sl Attivare o disattivare il ritardo del collegamento lento
  • Se si modifica questa opzione, PortQry raddoppia il tempo di attesa di una risposta da una porta UDP prima che PortQry determini che la porta non è IN ASCOLTO o che sia FILTRATA. Quando si esegue una query su collegamenti di rete lenti o inaffidabili, il tempo di attesa normale potrebbe essere troppo breve per ricevere una risposta.
  • Per disattivare di nuovo il ritardo del collegamento lento, eseguire set sl una seconda volta.

Si supponga di voler eseguire una query su un computer con l'indirizzo IP 10.0.1.10. Al prompt dei comandi della modalità interattiva immettere n 10.0.1.10. Questo comando genera un output simile all'estratto seguente:

Default Node: 10.0.1.10

>

Per inviare una query DNS, immettere q dns al prompt dei comandi della modalità interattiva. Questo comando genera un output simile all'estratto seguente:

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

>

Personalizzazione dell'associazione tra porte e servizi

Per impostazione predefinita, ogni computer basato su Windows ha un file di Servizi che si trova nella cartella %SYSTEMROOT%\System32\Drivers\Etc . PortQry usa questo file per risolvere i numeri di porta nei nomi di servizio corrispondenti. PortQry usa queste informazioni per selezionare il formato per le query. È possibile modificare questo file per indirizzare PortQry a inviare messaggi formattati a una porta alternativa. Ad esempio, la voce seguente viene visualizzata in un file di servizi tipico:

ldap              389/tcp                           #Lightweight Directory Access Protocol

È possibile modificare questa voce di porta o aggiungere una voce aggiuntiva. Per forzare PortQry a inviare query LDAP alla porta 1025, modificare la voce come indicato di seguito:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Esempi

Gli esempi seguenti illustrano come usare PortQry e i relativi parametri:

Modalità locale

Modalità della riga di comando

Eseguire una query sul computer locale

L'output di portqry -local è simile al seguente estratto:

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  

Eseguire una query sul computer locale quando l'accesso potrebbe essere limitato

Quando si esegue PortQry in modalità locale, come nell'esempio precedente, è possibile che venga visualizzato un output simile all'estratto seguente. Tale output indica che il contesto di sicurezza usato da PortQry non dispone di autorizzazioni sufficienti per accedere a tutte le informazioni richieste.

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

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

Monitorare un ID processo usando un intervallo specifico

Il comando seguente monitora un processo specifico:

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

Di conseguenza, PortQry esegue le azioni seguenti:

  • Identifica il processo con PID 1276 e controlla lo stato delle porte che usa ogni due secondi finché non si preme ESC.
  • Crea il file di log pid.txt. Se esiste già un file con tale nome, PortQry chiede di confermare che si desidera sovrascrivere il file.
  • Registra qualsiasi output nel file di log, incluso l'output dettagliato aggiuntivo.

Il contenuto del file di log è simile al seguente estratto:

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)

Specificare una destinazione e un protocollo

Note

Ognuno degli esempi di questa sezione esegue una query sulla porta 80, la porta predefinita.

Il comando seguente esegue una query sulla porta TCP predefinita in un computer specificato usando il nome di dominio completo (FQDN):

portqry -n myDomainController.example.com -p tcp

Il comando seguente esegue una query sulla porta UDP predefinita in un computer specificato usando il nome del computer:

portqry -n myServer -p udp

Il comando seguente esegue una query sulle porte TCP e UDP predefinite di un computer specificato usando il relativo indirizzo IP:

portqry -n 192.168.1.20 -p both

Il comando seguente esegue la stessa query del comando precedente, ma ignora il passaggio di risoluzione dei nomi:

portqry -n 192.168.1.20 -p both -nr

Il comando seguente esegue una query sulla porta TCP predefinita di un server Web:

portqry -n www.widgets.microsoft.com

Specificare una o più porte di destinazione

Il comando seguente verifica il servizio SMTP di un server di posta elettronica eseguendo una query sulla porta TCP 25:

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

Il comando seguente esegue una query sulla porta TCP 60897 e sulla porta UDP 60897 di un computer con indirizzo IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Il comando seguente esegue una query sulle porte UDP 139, 1025 e 135 (in tale sequenza) nel computer "myServer":

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

Il comando seguente esegue una query sull'intervallo di porte dalla porta 135 alla porta 139 (inclusi) nel computer "myServer":

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

Specificare un file di log per l'output di PortQry

Il comando seguente esegue una query sulla porta TCP 143 su mail.widgets.microsoft.com e registra l'output nel file portqry.txt . Se il file esiste già, PortQry lo sovrascrive senza chiedere conferma.

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

Eseguire una query su un collegamento lento

Il comando seguente esegue una query sulle porte TCP 143, 110 e 25 su mail.widgets.microsoft.com. Per ogni porta di destinazione, PortQry attende il doppio del solito per una risposta.

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

Specificare una porta di origine

Il comando seguente usa la porta UDP 3001 (se disponibile) nel computer locale per inviare una query alla porta UDP 53 sulla porta 192.168.1.20. Se un servizio è in ascolto su tale porta e risponde alla query, invia la risposta alla porta UDP 3001 nel computer locale.

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

Il comando seguente usa la porta UDP 3000 (se disponibile) nel computer locale per inviare una query alla porta UDP 389 in myDomainController.contoso.com. Per impostazione predefinita, il servizio LDAP deve essere in ascolto su questa porta. Se il servizio LDAP risponde alla prima query, PortQry usa una porta di origine temporanea per inviare la query formattata e ricevere eventuali risposte.

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

Usare un file batch per eseguire PortQry in modalità non interattiva

Il testo seguente è un esempio di file batch che esegue PortQry in modalità non interattiva:

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

Quando questo file batch viene eseguito, PortQry genera un file di log denominato pqlog.txt. Il contenuto di questo file è simile al seguente:

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 ========= 

Porta di query 135 (servizio RPC)

Il comando seguente esegue una query sulla porta UDP 135 nel computer myServer. Per impostazione predefinita, il servizio RPC deve essere in ascolto su questa porta.

portqry -n myServer -p udp -e 135

Di conseguenza, PortQry esegue le azioni seguenti:

  • PortQry usa il file Services nella cartella %SYSTEMROOT%\System32\Drivers\Etc per risolvere la porta UDP 135 in un servizio. Usando la configurazione predefinita, PortQry risolve la porta nel servizio mapper endpoint RPC (Epmap).
  • PortQry invia un datagramma utente non formattato alla porta UDP 135 nel computer di destinazione.
    PortQry non riceve una risposta dalla porta di destinazione. Questo perché il servizio mapper endpoint RPC risponde solo a una query RPC formattata correttamente. PortQry segnala che la porta è LISTENING o FILTERED.
  • PortQry crea una query RPC formattata correttamente che richiede tutti gli endpoint attualmente registrati con il mapper dell'endpoint RPC. PortQry invia questa query alla porta UDP 135 nel computer di destinazione.
  • A seconda della risposta, PortQry esegue una delle azioni seguenti:
    • Se PortQry riceve una risposta a questa query, PortQry restituisce l'intera risposta all'utente e segnala che la porta è LISTENING.
    • Se PortQry non riceve una risposta a questa query, segnala che la porta è FILTRATA.
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

Da questo output è possibile determinare non solo se il servizio è in ascolto sulla porta, ma anche quali servizi o programmi vengono registrati con il database del mapper di endpoint RPC nel computer di destinazione. L'output include l'identificatore univoco universale (UUID) per ogni programma, il nome con annotazioni (se presente), il protocollo usato da ogni programma, l'indirizzo di rete a cui è associato il programma e l'endpoint del programma tra parentesi quadre.

Note

Quando si specifica l'opzione -r nel comando PortQry per analizzare un intervallo di porte, PortQry non esegue una query sul mapper endpoint RPC per ottenere informazioni sull'endpoint. Questo parametro accelera l'analisi di un intervallo di porte.