我有一个在Vmware ESXi上运行的Windows 2008 R2 X64服务器。 最初它是在Hyper-V上运行的,但是我已经将VHD转换为VMDK并迁移到了ESXi。 我也安装了VMware Tools。 这个服务器是我们的TeamCity持续集成服务器,每晚都会执行我公司开发的软件包。 由于移动,由于“该文件正在被另一个进程使用”,偶尔某些构build过程应删除的文件无法删除。 我们正试图使用CMD del命令删除这些文件。 有时有效,有些则不行。 我使用PATHfilter(PATH包含C:\ work)发生故障的目录的path启动了进程监视器。 我看到很多vmtoolsd.exe Createfile,FileSystemControl和CloseFile操作连续发生。 有没有人听说过在Windows客户机上导致文件系统锁的Vmware工具?
事实上,我还没有能够用procmon来捕捉它,但我打算试一试。
此外,由于空间不足,将该目录C:\ work重新命名为C:\ work-old,添加第二个虚拟磁盘E:\,然后将磁盘挂载到目录C:\ work,然后将C:\ work-old的内容复制到新安装的C:\ work中。 我看到Vmware Tools正在C:\ work上持续执行FSCTL_Get_Reparse_Point。
更新:我昨天晚上禁用了VMware工具服务,但仍然发生。 我相信C:\工作目录,这是一个共享,实际上是作为一个目录安装到C:\工作的E:驱动器被2个远程主机同时访问,也许这是由第一个主办。 这在我将E:加载到工作目录之前并没有发生过,是否有已知的文件locking和卷挂载为目录的问题?
事实certificate,问题不是由VMware Tools引起的。 windows应用程序体验服务更有可能导致此问题,但我并不积极。 我最终通过添加一个虚拟磁盘并创build一个新的共享来解决这个问题,然后指出构build看看这个共享。 如果构build步骤为此共享留下了一个打开的句柄,则不会影响后续步骤,而不会再次引用该共享(以前所有操作都是从相同的共享中完成的,因此如果存在打开的句柄,文件操作将会失败)。