自从介绍Windows 7以来,我们在锁定文件时遇到了一个奇怪的问题。
我们在服务器上存储了一个VB6程序。客户端从共享中打开程序,并整天使用它。当我们有更新,我们只是重命名文件,并复制新的一个。这已经为我们工作了十多年,与NT,W2K和XP。自从引入Win 7以来,这已经不再有效了。
如果我打开服务器上的计算机管理,并查看打开的文件,它们都处于“开放模式”读取。如果我用鬣狗的话,它看起来有点不一样。XP客户端处于“开放模式”执行,Win 7客户端处于“开放模式”读取。如果我试图重命名该文件,就会得到一个共享违规行为:
Desired Access: Read Attributes, Delete, Synchronize
Disposition: Open
Options: Complete If Oplocked, Open Reparse Point
Attributes: n/a
ShareMode: Read, Write, Delete
AllocationSize: n/a
Impersonating: xxx\yyyyyy如果我终止Win 7连接,离开XP连接,我可以重命名文件。
这里是服务器端: Windows 2003 R2 x64共享权限是读/写NTFS权限是列表/读/执行
任何帮助都将不胜感激。
谢谢。
发布于 2012-10-08 13:50:22
这是Windows7/2008 R2中重定向驱动缓冲子系统的一个已知问题:
如果应用程序由一个或多个用户运行,则不能在Windows7或Windows 2008 R2中的共享文件夹中重命名应用程序
http://support.microsoft.com/kb/2622136
“考虑以下情况:
“在这种情况下,不能重命名应用程序。此外,还会收到以下错误消息:
该文件正在由另一个进程使用。
备注
“发生此问题的原因是在重定向驱动器缓冲子系统(Rdbss.sys)中对新oplocks的使用以及对远程可执行文件的引用进行了更改。”
如果您更喜欢最新版本的rdbss.sys,则可以在此修补程序中获得:
https://serverfault.com/questions/413541
复制相似问题