我想知道的是,是否可以尝试打开一个文件(当它失败时,因为它是用另一个关闭共享的进程打开的)来找出哪个进程正在使用该文件?
我想知道这些信息的原因是因为我正在制作一个可以“修复”恶意文件的小应用程序。
例如,某些恶意软件/广告软件等设置了文件安全描述符,因此用户无法删除文件等。我的应用程序只是重置安全描述符以允许用户重新获得控制权。
我还看到一个文件打开它的子进程,例如 (CreateFile) 并关闭共享模式,这样文件就不能被触及,然后应用程序将从内存中执行子进程。
最佳答案
是的,您通常可以只使用 openfiles
命令,在通过openfiles/local on
启用此信息的收集之后。
在 Windows NT 中(似乎包括)Windows XP,有一个名为 oh
的类似 Resource Kit 命令,打开句柄 的缩写。
两者的替代方法是使用 SysInternal 的 Process Explorer .
注意:在某些情况下,openfiles
将无法列出某些句柄。当 Windows 拒绝卸载 USB 磁盘时,我会遇到这种情况,声称某些进程正在使用该磁盘上的文件。从未出现过这样的过程。
关于C++ | Windows - 有没有办法找出哪个进程拥有锁定文件的所有权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446557/