我想知道是谁锁定了一个网络共享文件。
问题在这里: 网络共享在 NAS 上,所以我无法登录。我需要一个工具来远程找出是谁锁定了文件。每次重新启动 NAS 并不实际,因为有多个用户。
Exe 、 Process Explorer 和 PsFile似乎仅限于本地机器上的文件,因此它们不适合我。
会话由 NAS 设备处理。您所要求的是依赖于 NAS 设备,与窗口无关。您必须查看您的 NAS 固件,看看它支持什么。唯一的办法就是闻一闻,然后自己解决。
听起来你的问题和我解 给你的问题一样。在我的例子中,它是一个 Linux 文件服务器(当然运行的是 samba) ,因此我可以登录并查看哪个进程正在锁定该文件; 不幸的是,我还没有找到如何在不杀死负责任的会话的情况下关闭该文件。事实上,windows 客户端“认为”它已经关闭; 但是没有告诉文件服务器。
部分答案: 使用 ProcessExplorer,您可以查看网络共享 从你的机器打开上的句柄。
使用菜单“查找句柄”,然后您可以键入这样的路径
\Device\LanmanRedirector\server\share\
以防有人为基于 Windows 的系统或 NAS 寻找解决方案:
Windows 中有一个内置函数,可以显示远程计算机打开/锁定本地计算机上的哪些文件(通过文件共享打开该文件) :
在那里,您甚至可以强制关闭文件。
如果只是简单地知道/看到在任何特定时间(如果你使用窗口)谁在一个文件中,只选择文件“视图”作为“细节”,即,而不是缩略图,平铺或图标等。一旦进入“详细信息”视图,默认情况下将显示您; 文件名 尺寸 打字,然后 - 修改日期
你现在需要做的就是右键单击工具栏上的任何地方(文件名、大小、类型等等)。.)并且您将获得工具栏可以显示的其他选项的列表。
选择“ Owner”,一个新列将显示使用该文件的人的用户名,或者如果没有其他人使用该文件,则显示最初创建该文件的人的用户名。
这在使用共享 MS Access 数据库时特别有用。
在 Windows2008R2服务器上,有两种方法可以查看打开的文件和关闭这些连接。
通过共享和存储管理
服务器管理器 > 角色 > 文件服务 > 共享和存储管理 > 右键单击 SaSM > 管理打开的文件
通过公开文件
CMD > Openfiles.exe/query/s SERVERNAME
参见 http://technet.microsoft.com/en-us/library/bb490961.aspx。
PsFile 可以在远程机器上工作。如果我的登录帐户已经可以访问远程共享,我可以直接输入:
psfile \\remote-share
(将“ remote-share”替换为文件服务器的名称) ,它将列出该共享上打开的每个文档,以及打开它的用户和文件 ID (如果我想强制关闭该文件)。对我来说,这是一个非常长的列表,但是可以通过输入路径的一部分来缩小:
psfile \\remote-share I:\\Human_Resources
这有点棘手,因为在我的例子中,这个远程共享以 Z: 的形式挂载在我的本地机器上,但是 psfile 标识路径,因为它们是在远程文件服务器上定义的,在我的例子中是 I: (你的例子会有所不同)。我只需要梳理我的第一个 psfile 运行的结果,看看它返回的一些路径,然后用一个部分路径再次运行它,以缩小结果。
如果需要提供远程共享的凭据以供访问,PsFile 还允许您指定远程共享的凭据。
最后,一个鲜为人知的提示: 如果有人在文件资源管理器中点击一个文件,并剪切或复制该文件,意图将其粘贴到其他地方,这种行为也会锁定该文件。
关闭文件 e:\gestion\yourfile.dat,由任何用户打开(/a *)
e:\gestion\yourfile.dat
/a *
openfiles /disconnect /a * /op "e:\gestion\yourfile.dat"
更多关于: Http://dosprompt.info/commands/openfiles.asp