Windows 文件共享孤立文件锁

Windows 文件共享孤立文件锁

过去几周,我所在的公司服务器出现了问题,文件被某些东西锁定,无法解锁。这些文件几乎都是通过 Windows 文件共享主动访问的文件。我下载了流行的解锁者程序,但无法找到文件上的任何锁。 openfiles.exe(或系统工具 > 共享文件夹 > 打开文件)未显示该文件已被任何程序打开。然而,我无法在任何程序(包括记事本)中打开它 - 即使以本地系统管理员身份访问该文件,系统也会给我一个权限被拒绝的错误。当服务器重新启动时,问题总会消失。

更糟糕的是,我根本无法重现这个错误。它出现的频率从每天到一周不等,但运行正常。当问题确实发生时,我几乎没有时间去调查它,因为十有八九,这个问题会使我们的生产系统完全无法运行,管理层希望服务器重新启动。

问题并不局限于单个应用程序。大多数文件共享流量都在我们的生产管理软件中,环球商店,因此问题通常会在其中的某个地方出现,但最近发生的问题是在与 Globalshop 完全无关的 Microsoft Access 数据库中。

有人见过这样的事吗?知道是什么原因造成的吗?如果您需要更多信息,请告诉我。

我们目前正在运行 Windows Server 2003 标准版。

[编辑] 我尝试检查权限,但我也无法访问有问题的文件。我无法打开、移动、删除、重命名甚至复制该文件。

[edit2] 我已成功隔离了两个有问题的文件。只要没有出现其他影响生产的问题,管理层就授权我让服务器在当天剩余时间内保持在线以测试它们。

[edit3] Brettski 在评论中建议我查看文件权限。我截取了其中一个有问题的文件的属性窗口的屏幕截图。如您所见,没有可用的权限。http://i43.tinypic.com/24xgpe8.png(以具有完全访问权限的系统管理员身份打开。)

答案1

抓取手柄.exe (http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx),然后在服务器计算机上运行“handle -a”,将输出重定向到文本文件。搜索受影响的文件名。这至少应该告诉您服务器计算机上的哪个进程对该文件有打开的句柄。我很想知道哪个进程对该文件有句柄。(我想知道防病毒软件是否可能......)

顺便说一句,我对与 GlobalShop 打交道感到很抱歉。

编辑:

McAfee VirusScan 8,嗯?看看这个:https://kc.mcafee.com/corporate/index?page=content&id=KB52156

它指的是 Microsoft Office 文件,但听起来它可能会影响任何类型的文件。另请参阅:

http://forums.mcafeehelp.com/showthread.php?t=223545

http://www.tek-tips.com/viewthread.cfm?qid=1453943&page=1

https://web.archive.org/web/1/http://techrepublic%2ecom%2ecom/5208-6230-0.html?forumID=101&threadID=207897&messageID=2632853

答案2

普罗克蒙这可能是您最好的解决方案,因为它能够记录哪些进程正在使用哪些文件。即使文件未显示在 openfiles 中,procmon 也会记录谁打开了它。在这些情况下,杀毒软件通常是罪魁祸首。

答案3

我在我们的文件服务器 (Windows Storage Server 2003 R2 x64) 上也遇到过类似的问题。只有小型临时文件(通常是 Access .ldb“锁定”文件,但也包括用于各种进程的临时文件),位置、大小、名称或类型没有规律。文件被锁定,没有访问权限;解锁程序(我使用的是 EMCO UnLock IT,顺便说一下,我会对它表示赞赏)没有看到任何将文件锁定的程序。重新启动总能解决问题,但这是一个非常棘手的问题,因为每个人都在特定服务器上使用一些文件。

根据这里的评论,我关闭了该服务器上的 AV 软件。无需重新启动,刚才不可触碰的文件就消失了(这是一个临时文件,本来应该删除,所以这是件好事)。

AV 软件是 CA eTrust Antivirus v. 7.1。我猜(事后看来)旧软件 + x64 操作系统 = 偶尔出现问题。:-)

感谢 Sean 和 Evan 的讨论。

答案4

是的,这是一个非常古老的话题。但是,原因和解决方案在有关 Windows 中机会性文件锁定行为的此页面中有详细说明。请参阅页面末尾标题“MS Windows Oplocks 和缓存控制”下的内容。

关联:https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/locking.html

开头一段话暗示了为什么这是相关的(几乎和 OP 所面临的完全一样):

在 Windows 2000/XP 工作站计算机上运行应用程序(如 Norton Antivirus)时,存在一个已知问题,该问题会影响任何尝试通过网络访问共享数据库文件的应用程序。这是 Windows 2000/XP 操作系统中配置的默认设置的结果。当工作站尝试访问位于另一台 Windows 2000/XP 计算机上的共享数据文件时,Windows 2000/XP 操作系统将尝试通过锁定文件并在本地缓存信息来提高性能。发生这种情况时,应用程序无法正常运行,从而导致在网络操作期间显示“访问被拒绝”错误消息。

希望能帮助到你。

相关内容