How can I get a list of all open named pipes in Windows?

WindowsWinapiPipe

Windows Problem Overview


Is there an easy way to test whether your named pipe is working correctly? I want to make sure that the data I'm sending from my app is actually being sent. Is there a quick and easy way to get a list of all the named pipes?

Windows Solutions


Solution 1 - Windows

You can view these with Process Explorer from sysinternals. Use the "Find -> Find Handle or DLL..." option and enter the pattern "\Device\NamedPipe". It will show you which processes have which pipes open.

Solution 2 - Windows

In the Windows Powershell console, type

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


If your OS version is greater than Windows 7, you can also type

get-childitem \\.\pipe\

This returns a list of objects. If you want the name only:

(get-childitem \\.\pipe\).FullName

(The second example \\.\pipe\ does not work in Powershell 7, but the first example does)

Solution 3 - Windows

Try the following instead:

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

Solution 4 - Windows

Use pipelist.exe from Sysinternals.

Solution 5 - Windows

I stumbled across a feature in Chrome that will list out all open named pipes by navigating to "file://.//pipe//"

Since I can't seem to find any reference to this and it has been very helpful to me, I thought I might share.

Solution 6 - Windows

C#:

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

Solution 7 - Windows

At CMD prompt:

>ver
     
Microsoft Windows [Version 10.0.18362.476]
    
>dir \\.\pipe\\

Solution 8 - Windows

The second pipe was interpreted by this web site when submitted... You need two backslashes at the beginning. So make sure to use System.IO.Directory.GetFiles(@"\\.\pipe\").

Note that I have seen this function call throw an 'illegal characters in path.' exception when one of the pipes on my machine had invalid characters. PipleList.exe worked ok though, so it seems like a bug in MS's .NET code.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDoug T.View Question on Stackoverflow
Solution 1 - WindowsRob WalkerView Answer on Stackoverflow
Solution 2 - WindowsAndrew ShepherdView Answer on Stackoverflow
Solution 3 - WindowsVincent LidouView Answer on Stackoverflow
Solution 4 - WindowsJayView Answer on Stackoverflow
Solution 5 - WindowsDaynewView Answer on Stackoverflow
Solution 6 - WindowsOmar ElsherifView Answer on Stackoverflow
Solution 7 - WindowsConstantin KonstantinidisView Answer on Stackoverflow
Solution 8 - WindowsVincent LidouView Answer on Stackoverflow