查找与我的IIS应用程序关联的命名管道
问题描述:
我有一个具有命名管道绑定的IIS应用程序。当我打开powershell并运行Get-ChildItem '\\.\pipe\'
时,我看到一长串名字管道,名字像疯狂的GUID一样。其中一些以iisipm开头,我假设它们是由IIS创建的。如何以编程方式确定这些管道中的哪一个与我的IIS应用程序相关联?查找与我的IIS应用程序关联的命名管道
答
命名管道只是通过SMB用于I/O的文件系统上的文件。你问的是有道理的说:“我的桌面上有一个文件,什么是使用它?!”我会告诉你,你的问题稍微抽象一些,因为有内置的方法可以通过安全描述符上的SACL和使用安全事件日志找出对正常文件的读/写操作。虽然这仍然可以使用命名管道来完成,但您必须将SACL添加到每个命名管道,并确保正确的审核已启用以解决此问题。
在这种情况下,完成要查找的内容的最简单方法是使用Process Explorer查找指定管道的所有打开句柄,并查找具有句柄的IIS工作进程。
要做到这一点:
- 运行进程资源管理器,以管理员
- 出版社,CTRL-F为查找
- 选择 “文件句柄或DLL ......”
- 类型,“ \ Device \ NamedPipe \“
..并确定哪个进程是您的IIS进程,然后确定哪个进程打开了哪个管道。
编辑:Handle.exe(也来自Sysinternals)也应提供此信息。
你想要那个吗?无论如何,您可以通过IIS相关的cmdlet获取池的工作进程,然后通过读取进程的进程参数知道命名的管道信息。 –
@LexLi我需要在创建特定命名管道后添加权限,但不知道哪个管道需要新权限。 – sirdank