![当文件被移动或删除时,会创建锁定文件或幽灵文件](https://linux22.com/image/1583222/%E5%BD%93%E6%96%87%E4%BB%B6%E8%A2%AB%E7%A7%BB%E5%8A%A8%E6%88%96%E5%88%A0%E9%99%A4%E6%97%B6%EF%BC%8C%E4%BC%9A%E5%88%9B%E5%BB%BA%E9%94%81%E5%AE%9A%E6%96%87%E4%BB%B6%E6%88%96%E5%B9%BD%E7%81%B5%E6%96%87%E4%BB%B6.png)
当商业软件包处理了位置 A 中的文件后,它会将其移动到位置 B(从文件属性的更改来看,我怀疑它将数据从 A 写入 B 并从 A 中删除,而不是使用移动命令,但我不确定)。我无法控制它做什么。我有一个 VBScript 正在运行,检查并进一步询问位置 A 中未处理的文件。
问题是,文件在处理后偶尔会出现在位置 A 和 B 中(我们谈论的可能是 <0.01% 的时间 - 肯定比任何代码问题可能产生的时间都要少,因此可能是由移动/删除时的系统/网络条件引起的)。目标文件夹 B 中的文件似乎是“正常的”,即在功能上与位置 B 中的任何其他文件没有区别。在极少数情况下,留在位置 A 的文件似乎被“超级锁定” - 即使是那些对位置 A 具有完全管理员权限的人也无法对它执行任何操作(打开、重命名、移动、删除、删除父文件夹等)。它确实有属性,事实上,比较 Windows 属性中的详细信息选项卡,我注意到位置 A 中的文件未显示所有者属性,但位置 B 中的文件显示所有者属性。这就是为什么我认为它可能是“幽灵文件”,更严格地说,是 MFT 中的虚假记录。
当 VBS 尝试处理(包括打开读取)位置 A 中的文件时,它会崩溃。周末服务器重新启动后,该文件将不再出现在位置 A 中,并且 VBS 会再次开始完成。
有人能说出发生了什么事吗?为什么?有没有办法在 VBS 中识别该文件(从而避免尝试处理它/失败)?如果这不是在正确的部分,请原谅。
编辑:感谢@harrymc - 我不认为问题发生在文件接受病毒扫描的时候(创建时或按计划进行) - 仍然很高兴知道幽灵文件的想法并不可笑。
编辑:感谢@harrymc - 我没有权限在这里发表评论,所以这个帖子的保留对我来说是件好事。我的同事(具有管理员权限的人)运行了进程资源管理器,但表示(我从未见过该程序,所以我希望这是有道理的)它没有提供锁定文件的进程的名称。我已求助于在查询之前记录文件的名称,之后清除它,然后在运行时检查是否保留了日志(即幽灵文件的名称)并跳过该文件。