Comment savoir quel processus écoute sur un port sous Windows?
windows
networking
port
Lecture seulement
la source
la source
Réponses:
Nouvelle réponse, PowerShell
Ancienne réponse, cmd
(Ajoutez -n pour l'empêcher d'essayer de résoudre les noms d'hôtes, ce qui le rendra beaucoup plus rapide.)
Notez la recommandation de Dane pour TCPView . Ça a l'air très utile!
-a Affiche toutes les connexions et les ports d'écoute.
-b Affiche l'exécutable impliqué dans la création de chaque connexion ou port d'écoute. Dans certains cas, les exécutables bien connus hébergent plusieurs composants indépendants, et dans ces cas, la séquence des composants impliqués dans la création de la connexion ou du port d'écoute s'affiche. Dans ce cas, le nom de l'exécutable est en [] en bas, en haut se trouve le composant qu'il a appelé, et ainsi de suite jusqu'à ce que TCP / IP soit atteint. Notez que cette option peut prendre du temps et échouera sauf si vous disposez des autorisations suffisantes.
-n Affiche les adresses et les numéros de port sous forme numérique.
-o Affiche l'ID de processus propriétaire associé à chaque connexion.
la source
1234
- alors vous pouvez utilisertasklist /fi "pid eq 1234"
pour trouver le nom et d'autres détails du processus.Il existe une interface graphique native pour Windows:
Ou Exécuter
resmon.exe
, ou à partir de l' onglet des performances du Gestionnaire des tâches .la source
Utilisez TCPView si vous voulez une interface graphique pour cela. C'est l'ancienne application Sysinternals que Microsoft a achetée.
la source
Pour les fenêtres:
la source
netstat -aon | find /i "abhören"
pour l'allemand.FIND: Parameter format not correct
Le commutateur -b mentionné dans la plupart des réponses nécessite que vous disposiez de privilèges administratifs sur la machine. Vous n'avez pas vraiment besoin de droits élevés pour obtenir le nom du processus!
Trouvez le pid du processus en cours d'exécution dans le numéro de port (par exemple, 8080)
Trouver le nom du processus par pid
la source
Vous pouvez obtenir plus d'informations si vous exécutez la commande suivante:
l'utilisation de la commande «Rechercher» vous permet de filtrer les résultats.
find /i "listening"
n'affichera que les ports en écoute. Remarque, vous devez/i
ignorer la casse, sinon vous devez taper find "LISTENING".| find "port"
limitera les résultats à ceux contenant uniquement le numéro de port spécifique. Notez que cela filtrera également les résultats qui ont le numéro de port n'importe où dans la chaîne de réponse.la source
FIND: Parameter format not correct
. Vous devez ajouter un espace après les critères de recherche. Cela vous laissera avecnetstat -aon | find /i "listening" | find "1234 "
.{back tick}
" écoute{back tick}
"" | find "{back tick}
" port{back tick}
" "(<- notez les citations échappées - excusez le termeback tick
car je ne peux pas ajouter le personnage réel car il pense que c'est un snipping)Ouvrez une fenêtre d'invite de commande (en tant qu'administrateur) Dans "Démarrer \ Boîte de recherche" Entrez "cmd" puis cliquez avec le bouton droit sur "cmd.exe" et sélectionnez "Exécuter en tant qu'administrateur"
Saisissez le texte suivant, puis appuyez sur Entrée.
netstat -abno
-a Affiche toutes les connexions et les ports d'écoute.
-b Affiche l'exécutable impliqué dans la création de chaque connexion ou port d'écoute. Dans certains cas, les exécutables bien connus hébergent plusieurs composants indépendants, et dans ces cas, la séquence des composants impliqués dans la création de la connexion ou du port d'écoute s'affiche. Dans ce cas, le nom de l'exécutable est en [] en bas, en haut se trouve le composant qu'il a appelé, et ainsi de suite jusqu'à ce que TCP / IP soit atteint. Notez que cette option peut prendre du temps et échouera sauf si vous disposez des autorisations suffisantes.
-n Affiche les adresses et les numéros de port sous forme numérique.
-o Affiche l'ID de processus propriétaire associé à chaque connexion.
Trouvez le port que vous écoutez sous "Adresse locale"
Regardez le nom du processus directement en dessous.
REMARQUE: pour trouver le processus sous le Gestionnaire des tâches
Notez le PID (identificateur de processus) à côté du port que vous regardez.
Ouvrez le Gestionnaire des tâches de Windows.
Sélectionnez l'onglet Processus.
Recherchez le PID que vous avez noté lorsque vous avez effectué le netstat à l'étape 1.
Si vous ne voyez pas de colonne PID, cliquez sur Afficher / sélectionner les colonnes. Sélectionnez PID.
Assurez-vous que «Afficher les processus de tous les utilisateurs» est sélectionné.
la source
Obtenir le PID et le nom de l'image
Utilisez une seule commande:
où
9000
doit être remplacé par votre numéro de port.La sortie contiendra quelque chose comme ceci:
Explication:
il parcourt chaque ligne à partir de la sortie de la commande suivante:
de chaque ligne, le PID (
%a
- le nom n'est pas important ici) est extrait (le PID est le5
e élément de cette ligne) et passé à la commande suivanteSi vous souhaitez ignorer l'en- tête et le retour de l' invite de commande , vous pouvez utiliser:
Production:
la source
findstr :9000
sinon, vous trouverez même des applications contenant le numéro (par exemple, lorsque vous recherchez "80", vous trouverez également des applications sur le port 80, 800, 8000).Nous trouvons d'abord l'ID de processus de cette tâche particulière que nous devons éliminer pour libérer le port:
Type
Après avoir exécuté cette commande dans l'invite de ligne de commande Windows (cmd), sélectionnez le pid dont je pense que la dernière colonne. Supposons que ce soit 3312.
Tapez maintenant
Vous pouvez maintenant recouper en tapant la
netstat
commande.REMARQUE: parfois, Windows ne vous permet pas d'exécuter cette commande directement sur CMD, vous devez donc d'abord suivre ces étapes:
Dans le menu Démarrer -> invite de commande (faites un clic droit sur l'invite de commande et exécutez en tant qu'administrateur)
la source
Pour obtenir une liste de tous les ID de processus propriétaires associés à chaque connexion:
Si vous voulez tuer un processus, utilisez l'ID et utilisez cette commande pour que le port devienne libre
la source
Il est très simple d'obtenir le numéro de port d'un PID sous Windows.
Voici les étapes:
Allez à exécuter → tapez cmd → appuyez sur Enter.
Écrivez la commande suivante ...
(Remarque: n'incluez pas de crochets.)
Appuyez sur Enter...
Ensuite, cmd vous donnera le détail du service exécuté sur ce port avec le PID.
Ouvrez le Gestionnaire des tâches et appuyez sur l'onglet de service et faites correspondre le PID avec celui de la cmd, et c'est tout.
la source
Ouvrez simplement un shell de commande et tapez (en disant que votre port est 123456):
Vous verrez tout ce dont vous avez besoin.
Les en-têtes sont:
C'est comme mentionné ici .
la source
findstr 123456
(sans guillemets) oufind "123456"
(avec guillemets). (@Josh)Pour savoir quel processus spécifique (PID) utilise quel port:
Où 1234 est le PID de votre processus. [Accédez au Gestionnaire des tâches → onglet Services / Processus pour connaître le PID de votre application.]
la source
-n
définir le drapeau deux fois.-ano
est assez.Avec PowerShell 5 sur Windows 10 ou Windows Server 2016, exécutez l'
Get-NetTCPConnection
applet de commande. Je suppose que cela devrait également fonctionner sur les anciennes versions de Windows.La sortie par défaut de
Get-NetTCPConnection
n'inclut pas l'ID de processus pour une raison quelconque et c'est un peu déroutant. Cependant, vous pouvez toujours l'obtenir en formatant la sortie. La propriété que vous recherchez estOwningProcess
.Si vous souhaitez trouver l'ID du processus qui écoute sur le port 443, exécutez cette commande:
Formatez la sortie dans un tableau avec les propriétés que vous recherchez:
Si vous souhaitez connaître le nom du processus, exécutez cette commande:
la source
Si vous souhaitez utiliser un outil GUI pour ce faire, il y a TCPView de Sysinternals .
la source
Tapez la commande:
netstat -aon | findstr :DESIRED_PORT_NUMBER
Par exemple, si je veux trouver le port 80:
netstat -aon | findstr :80
Cette réponse a été initialement publiée pour cette question .
la source
Netstat:
-o processus d'appropriation
L' outil Currports permet de rechercher et de filtrer
la source
Ouvrez l'invite de commande - démarrer → Exécuter →
cmd
, ou menu Démarrer → Tous les programmes → Accessoires → Invite de commandes .Type
Remplacez le
[port_number]
par le numéro de port réel que vous souhaitez vérifier et appuyez sur Enter.Type
Remplacez le
[PID]
par le numéro de l'étape ci-dessus et appuyez sur Enter.la source
netstat -ao
etnetstat -ab
vous indiquer l'application, mais si vous n'êtes pas administrateur système, vous obtiendrez "L'opération demandée nécessite une élévation".Ce n'est pas idéal, mais si vous utilisez l'Explorateur de processus de Sysinternals, vous pouvez accéder aux propriétés de processus spécifiques et regarder l'onglet TCP pour voir s'ils utilisent le port qui vous intéresse. C'est un peu une aiguille et une botte de foin chose, mais peut-être que ça va aider quelqu'un ...
la source
Je recommande CurrPorts de NirSoft.
CurrPorts peut filtrer les résultats affichés. TCPView n'a pas cette fonctionnalité.
Remarque: vous pouvez cliquer avec le bouton droit sur la connexion socket d'un processus et sélectionner «Fermer les connexions TCP sélectionnées» (vous pouvez également le faire dans TCPView). Cela résout souvent les problèmes de connectivité que j'ai avec Outlook et Lync après avoir changé de VPN. Avec CurrPorts, vous pouvez également fermer les connexions à partir de la ligne de commande avec le paramètre "/ close".
la source
Une solution monoligne qui m'aide est celle-ci. Remplacez simplement 3000 par votre port:
Edit: Modification
kill
àStop-Process
pour un langage plus PowerShell commela source
Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess | Stop-Process
Suivez ces outils: De cmd :
C:\> netstat -anob
avec des privilèges d' administrateur .Explorateur de processus
Dump de processus
Moniteur de port
Tout de sysinternals.com.
Si vous voulez simplement connaître le processus en cours et les threads sous chaque processus, je vous recommande d'en savoir plus sur
wmic
. C'est un merveilleux outil en ligne de commande, qui vous offre bien plus que vous ne pouvez en savoir.Exemple:
La commande ci-dessus affichera une liste de tous les processus en bref toutes les 5 secondes. Pour en savoir plus, vous pouvez simplement utiliser la
/?
commande des fenêtres, par exemple,Et ainsi de suite. :)
la source
Utilisation:
Cela montre le PID du processus en cours d'exécution sur un port particulier.
Gardez à l'esprit l'ID du processus et accédez au Gestionnaire des tâches et aux services ou à l'onglet Détails et terminez le processus qui a le même PID.
Ainsi, vous pouvez tuer un processus en cours d'exécution sur un port particulier sous Windows.
la source
Pour ceux qui utilisent PowerShell, essayez
Get-NetworkStatistics
:la source
Par programme, vous avez besoin de trucs de iphlpapi.h , par exemple GetTcpTable2 (). Des structures comme MIB_TCP6ROW2 contiennent le PID propriétaire.
la source
En utilisant PowerShell ... ... ce serait votre ami (remplacez 8080 par votre numéro de port):
Exemple de sortie
Ainsi, dans cet exemple, tnslsnr.exe (base de données OracleXE) écoute sur le port 8080.
Explication rapide
Select-String
est utilisé pour filtrer la longue sortie denetstat
pour les lignes concernées.-Pattern
teste chaque ligne par rapport à une expression régulière.-Context 0,1
affichera 0 lignes de tête et 1 ligne de fin pour chaque correspondance de modèle.la source
Pour Windows, si vous souhaitez rechercher des éléments à l'écoute ou connectés au port 1234, exécutez la commande suivante à l'invite cmd:
la source
Utilisez le script batch ci-dessous qui prend un nom de processus comme argument et donne une
netstat
sortie pour le processus.la source
Sur la base des réponses avec info et kill , pour moi, il est utile de les combiner en une seule commande . Et vous pouvez l'exécuter à partir de cmd pour obtenir des informations sur les processus qui écoutent sur un port donné (exemple 8080):
Ou si vous voulez le tuer:
Vous pouvez également mettre ces commandes dans un fichier bat (elles seront légèrement différentes - remplacer
%i
pour%%i
):Fichier
portInfo.bat
Fichier
portKill.bat
Ensuite, vous de cmd vous pouvez le faire:
portInfo.bat 8080
ou
portKill.bat 8080
la source
.\portInfo.bat 800
dans PowerShell, cela donne quelque chose comme ceci:C:\work>for /F "tokens=3 delims=LISTENING" %i in ('netstat -ano | findStr "800" | findStr "["') do (tasklist /fi "pid eq %i" ) C:\work>(tasklist /fi "pid eq 4" ) Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System 4 Services 0 1,820 K
portInfo.bat
dans un terminal PowerShell, puis exécuté.\portInfo.bat 8080
. La sortie n'était que le contenu du fichier de commandes. Très bien, je néglige quelque chose. Remarque, j'utilise PowerShell 6.2.3 sous Windows 10. Je l'ai également essayé dans une invite de commande standard, mais le résultat était le même: sortie du contenu du script. Je suis sûr qu'il me manque une information cruciale pour que cela fonctionne./nh
:@tasklist /nh /fi "pid eq %i"
? Et justement la porte:Findstr ":8080"
Dans mon cas, le port (3000) n'a pas été utilisé du tout et n'est pas visible dans netstat. Mais! Le programme de désinstallation Docker pour Windows a résolu le problème.
la source