如何判断哪台计算机在网络共享上打开了文件?

如何判断哪台计算机在网络共享上打开了文件?

环境:

Windows XP sp3、Windows 2003 服务器

问题:

我们有几十台信息亭机器,每台机器的登录名都相同,偶尔会短暂地共享一个文件。每分钟锁定和释放的速率为几次。

最近,我们遇到了一个客户端以独占方式锁定一个文件,然后不释放该文件的情况。 

当这种情况发生时,我们可以关闭文件,但几分钟或更长时间过去了,这是不可接受的中断。

上个月,未释放锁的问题已经发生过几次。我一直在寻找哪个自助服务终端设备负责锁定,并在发生锁定时快速检测到它。

我们从服务器获取的信息似乎存在差距:

我们可以从各种工具中看到:
- 哪些文件已打开和锁定。(多种方式)
- 哪些登录有特定文件打开或锁定。(多种方式)
- 特定计算机通常打开文件。(共享文件夹、会话 mmc)

我们无法看到的是特定计算机打开并锁定了特定文件。

有人知道怎样达到这个目的吗?

谢谢 -

答案1

看看这个小免费软件实用程序(分享观察),我认为它会满足您的要求。

列出的功能之一:“显示连接到每个共享的用户和计算机,以及打开的文件。”

替代文本

答案2

进入命令行(CMD),

然后输入:openfiles /query网络共享的 ip

并且可能需要用户名和密码。

您可以在以下位置获取有关 openfiles 的更多信息这里

答案3

我相信你会想要参考 Sky100 的帖子,因为他是正确的,不是提供你问的问题,而是提供解决问题所需的信息。你需要通过“openfile /query /v”(详细)命令引用锁定的 ID 号,因为它将为你提供所需的数据。在给定的列表中搜索文件名,数据将显示哪个项目启用了读写功能,同时还会提供一个特定的 ID 号。不,你可能找不到哪个特定的系统锁定了文件,但使用提供的工具,你可以断开该用户与文件的连接。下面是简化我的胡言乱语的分步说明。

1)在具有管理员权限的文件服务器上,执行开始 > 运行 > CMD [ENTER]

2)CD桌面[ENTER](您很快就会明白为什么。)

3)openfiles /query /v > file.txt [ENTER](这将在桌面上创建一个文件,其中列出服务器上所有打开的文件。)

4)打开 file.txt 并搜索包含文件名和读 + 写权限的行。

5)记下该行上的 ID 号并返回到您的命令控制台。

6)openfiles /disconnect /ID [在此处输入 ID 号] [ENTER]

只要您在文件服务器上拥有管理权限,它就会断开该系统与文件的连接,并且假设您的系统是自动化的,应该允许事情根据需要继续进行。

参考: openfiles /query /? openfiles /disconnect /?

如果您需要适合您系统的脚本或编程应用程序,请随时发表评论,我将提供联系信息、非常低的价格以及我的应用程序的技术支持。

答案4

当我尝试解决 RobW 的问题并提供替代解决方案时,我未能回答他的问题。

我相信您正在寻找的解决方案是在该系统上设置审核策略,然后设置该文件以审核来自该特定用户的任何访问。执行此操作的步骤可能因您的网络设置而异,因此我将向您推荐微软的 Technet 链接,了解如何设置不同的系统进行审核。

http://technet.microsoft.com/en-us/library/cc787268(WS.10).aspx

设置完成后,请确保通过将用户帐户附加为审核员来完成您想要监控的特定文件的设置,然后您就可以开始了。

只需在将来检查您的安全事件日志,虽然它会列出每个系统(因为它们都使用相同的用户名),但对其进行排序并找到当前对该文件具有读写权限的系统应该并不困难。

设置每隔几天清除一次安全日志可能会很有用。

如果这不起作用,您可能需要根据访问文件的每个主机名(而不是用户名)来设置系统。我相信这可以通过 Microsoft 管理控制台实现。

再次强调,如果您需要编程,我可不是那种想从您那里收取大量金钱来购买一些小程序的商人。我以个人都无法拒绝的价格提供高质量的编程。希望这能帮助您解决问题。

相关内容