列出不同计算机上的命名管道
list named pipes on different computer
有很多关于如何在同一台计算机上列出管道的例子(使用pipelist实用程序,或调用ntddl/NtQueryDirectoryFile)。但是,我需要列出远程系统(在同一域或工作组)上的管道。尝试以编程方式访问"\
hPipe = CreateFile(L"\\10.0.0.11\Pipe\", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, NULL);
DWORD dwErr = GetLastError(); // returns 123
if(hPipe == INVALID_HANDLE_VALUE)
return 1;
经过一番研究,我发现只要提供正确的安全上下文,命名管道可以跨网络工作。例如,如果同一个域用户登录到两个工作站,则命名管道都在工作。
不幸的是,我没能找到一种方法来列出不同计算机上的管道。c# Directory.GetFiles(@"hostPipe")抛出异常"Incorrect function".
所以,我的回答是:没有办法在Win32中获得不同计算机上的命名管道列表。如果我说错了,请纠正我。
我决定实现套接字服务器,它将通过TCP提供开放管道列表。
编辑:后来我在github上找到了PAExec实用程序的源代码。从源我学会了如何使用WNetOpenEnum/WNetAddConnection2连接到远程IPC$并注入我自己的实用程序,返回打开管道列表。相关文章:
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- IPC使用多个管道和分支进程来运行Python程序
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 如何创建函数管道,以便函数一个接一个地运行?
- Gstreamer 管道从命令 lne 到 c 代码
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 将旧管道转换为现代 openGL 时出现问题
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- 如何使用管道在父级和子级之间来回传递文件
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- C++ 计算机猜测用户数量在 7 次猜测以内
- C++为什么我的编译器成功了,但我的计算机给出了调试错误?
- 如何测量管道延迟?
- 我如何使用此程序管道多个命令?C++
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 先进先出:一个进程永远不会从管道读取
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 管道可以在局域网计算机之间使用吗