当我想在一夜之间(通过.Net程序)在服务器上放置新版本的exe时遇到一个烦人的问题,当某些用户离开办公室时没有关闭exe(所有用户在服务器上使用此exe) )。
简单的复制方法:
在pc2(WIN7)上删除此exe =>文件没有被删除,但不再是exe文件的所有者,甚至没有管理员。而且没有办法将所有者放回文件,因为没有人有权再这样做(甚至没有管理员)。
退出exe op pc1 =>该exe在打开的文件中不可见,无法删除该文件(Explorer或Elevated命令提示符)
我已经尝试了几种“解锁”工具,但是它们都无法解锁文件,因为他们看不到文件已被锁定。但我认为该文件已被Windows系统锁定,直到曾经处于exe状态的用户通宵退出exe;然后Windows会进行真正的删除。
问题是“删除” exe某种程度上处于“损坏”状态,因此您无法再打开此exe。
是否有办法(.Net代码)强制将该文件交还所有者(例如Admin),以便该所有者可以永久删除文件?
备注:由于很多用户使用此exe,因此如果用户仍在程序中或在每台PC上运行ProcessExplorer,则不可能在每台计算机上查看。
谢谢。
答案 0 :(得分:0)
您可以通过这种方法关闭网络共享文件,而无需停止服务器:
1-打开cmd(以管理员身份):按Win + R键,输入cmd.exe并按Enter
2 –类型
cd "folder of file"
并替换为文件的文件夹路径
3 –键入
openfiles /Disconnect /OP "filename.exe" /ID *
其中filename是文件名
4 –用新文件替换