如何查找特定用户正在访问共享文件的过程

我们的业务pipe理系统在过去的几个星期里有过一些打嗝。 它被拒绝访问它使用的一些文件。 通过挖掘pipe理打开的文件,我已经能够确定哪些用户正在访问有问题的文件。 从这里我已经使用资源pipe理器和进程资源pipe理器来search这些文件所在目录的子string。我可以看到应该访问这些目录和打算访问的文件的进程。 问题是search句柄永远不会显示麻烦的文件,因此我无法确定将它们locking的过程。 部分问题是文件被定期访问,而不是经常访问。 为了确保我追踪违规程序的企图,我遵循了以下步骤:

  1. 刷新pipe理打开的文件,直到有问题的文件显示为由用户打开。
  2. search句柄中目录的子string。
  3. 刷新pipe理打开的文件,看看文件仍然在句柄search完成后被访问。

这些步骤理论上应该保证我能够捕获正在使用的文件,但除了我期望的结果之外,我还没有得到任何结果。

有没有人有任何其他想法如何我可以确定什么过程访问这些文件? 我确实知道正在访问它们的用户,而且我已经远程从他们的工作站上运行句柄search。

[EDIT1]服务器运行的是Windows Server Standard,客户机都运行Windows 7 Professional。 这些文件是由CCC One(这是一家碰撞修复公司)出口的估计数据,被拒绝访问的程序是Nexsyis的NEX(我们的业务pipe理系统)。 至于协议,我不是很确定,但我会想象它是SMB。

我假设你正在谈论Windows Server。 如果是这样,我build议看看下面的工具:

  • 资源监视器: Start > Run > resmon 。 “磁盘”列出进程,打开文件和读/写操作。
  • Computer Management > Shared Folders > Sharescompmgmt.msc )以查看打开的networking共享。
  • net session命令
  • Sysinternals Process Explorer – 您可以使用Ctrl + fsearchhandles
  • Sysinternals进程监视器 – 您可以设置一个“长期”捕获来匹配问题中的文件path,并在尝试重现问题时长期保持打开状态。

无论哪种方式 – 我build议提供更多的技术细节来帮助回答你的问题(如操作系统,工具和使用的协议)。