2008-11-03 5 views

Répondre

76

Vous pouvez afficher ceux-ci avec Process Explorer à partir de sysinternals. Utilisez l'option "Find -> Find Handle ou DLL ..." et entrez le modèle "\ Device \ NamedPipe \". Il vous montrera quels processus ont quels tuyaux s'ouvrent.

+0

Vérifiez quelle version de Process Explorer vous avez avant d'essayer cela. Cela ne fonctionne pas sur la version 15.23, mais fonctionne sur la version 16.02. (N'avez pas essayé d'autres versions) – Carl

+2

Pour éviter d'éventuelles exceptions - comme cela est mentionné dans d'autres réponses - vous pouvez utiliser ma solution qui est plus bas mais qui fonctionne comme un charme même si le nom du pipe nommé contient des caractères invalides fichier. S'il vous plaît voir http://stackoverflow.com/questions/25109491/how-can-i-get-a-list-of-all-open-named-pipes-in-windows-and-avoiding-possible-ex/25126943# 25126943 – user2126375

+0

L'utilisation de 'pipelist.exe' de SysInternals est encore plus simple, mais il s'agit uniquement de la ligne de commande. –

39

Utilisez pipelist.exe de Sysinternals.

+0

Voir aussi handle.exe de sysinternals qui montrera presque toutes les choses qui ont un handle ouvert. – JimR

+0

Poignée http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx –

16

C#:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\"); 
+1

Vous ... Absolutley ROCK! – NTDLS

52

Essayez ce qui suit à la place:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\"); 
+6

votre manque une barre oblique. string [] listOfPipes = System.IO.Directory.GetFiles (@ "\\. \ Pipe \"); – dmex

+0

Vous ... Absolutley ROCK! – NTDLS

+0

J'ai passé toute la nuit à chercher une fonction pour rechercher ou répertorier des tuyaux. C'est exactement ce dont j'avais besoin. Merci!! – swax

7

Le second tube a été interprété par le présent site Web lorsqu'il est soumis ... Vous avez besoin de deux anti-slash au début. Assurez-vous donc d'utiliser System.IO.Directory.GetFiles (@ "\\. \ Pipe \").

Notez que j'ai vu cet appel de fonction jeter un 'caractères illégaux dans le chemin.' exception quand l'un des tuyaux sur ma machine avait des caractères invalides. PipleList.exe a bien fonctionné, donc cela semble être un bug dans le code .net de MS.

+1

La remarque sur les 'caractères interdits dans le chemin' est un point important, car Il est très fréquent que les programmes ouvrent des noms de tuyaux qui déclenchent cela. Tout programme qui ouvre un tube nommé 'C: \ myLocation \ someFile.x' provoquera cette erreur. – dss539

41

Dans la console Windows PowerShell, tapez

[System.IO.Directory]::GetFiles("\\.\\pipe\\") 


Si votre version du système d'exploitation est supérieure à Windows 7, vous pouvez également taper

get-childitem \\.\pipe\ 
+1

Vous pouvez envisager d'ouvrir Powershell en tant qu'administrateur – dotNetE

+0

Vous pouvez également utiliser get-childitem \\. \ Pipe \ –

+0

@ChrisGillum J'ai essayé cela, et j'ai reçu une erreur "Impossible de trouver le chemin '\\. \ Pipe \' car il n'existe pas " –

6

Je suis tombé sur une fonctionnalité dans Chrome qui sera lister tous les canaux nommés ouverts en naviguant vers "file: //.//pipe//"

Puisqu'il me semble que je ne trouve aucune référence à thi s et cela m'a été très utile, j'ai pensé que je pourrais partager.

+0

Pouvez-vous expliquer un peu plus? –

+0

Cela liste mes tuyaux. Incroyable! (notez que cela fonctionnera parce que cela fonctionne comme un répertoire, comme le montre la réponse d'Andrew Shepherd) –

Questions connexes