我如何追踪 Windows 工具用于删除用户配置文件的系统调用或可执行文件?

我如何追踪 Windows 工具用于删除用户配置文件的系统调用或可执行文件?

首先,介绍一些背景。

我处理过很多涉及 Onedrive 的终端用户桌面支持。有时,如果 Onedrive 客户端及其库完全崩溃,我们必须重建。通常这涉及删除旧库位置并让其重新同步。很多时候,如果客户端没有干净地退出或断开连接,这些库不会让您使用文件资源管理器简单地删除它们,原因是类似于此 KB 的内容:https://learn.microsoft.com/en-us/sharepoint/troubleshoot/sync/delete-onedrive-synced-file-error。不幸的是,对于我和我们的技术团队来说,CHKDSK 经常无法完全解决这个问题,或者在其他情况下,我们无法使用 CHKDSK。这意味着我们有一个处于不确定状态的库,我们通常会重命名并隐藏它,然后让 Onedrive 创建一个新的工作库。

谜团就在这里。即使在文件资源管理器出现故障,并且使用 powershell 递归调用 Delete() 方法失败的情况下,系统菜单中的用户配置文件菜单仍然可以完全删除包含其中一个损坏的 Onedrive 库的用户配置文件文件夹。

我指的菜单:https://i.stack.imgur.com/3jTW2.png

我想知道是否有办法找出 Windows 使用什么神奇的系统调用或实用程序来强制删除这些 Onedrive 库文件夹,以便我自己可以这样做。这对我们来说是一个很常见的问题,我花了大量时间试图弄清楚它是如何做到的。如果有人对此有更多了解,我很想听听你的智慧。

谢谢。

答案1

我首先尝试的是运行进程监视器https://learn.microsoft.com/en-us/sysinternals/downloads/procmon在系统被移除时,然后检查输出中正在运行的内容、访问了哪些路径等等。

请注意,如果您不熟悉 ProcMon,它会吐出大量数据,因此我建议您确保将其设置为将输出存储到文件而不是内存中,例如转到文件 > 备份文件,然后设置文件名。此外,在开始之前,您需要停止并清除捕获,在开始删除之前开始捕获,然后立即停止捕获。否则,您最终会得到大量不相关的信息。然后,只需过滤掉您知道不相关的信息,例如访问文件系统的后台进程、连接到资源的服务等,直到您将数据量减少到合理的大小,然后您可以查看它以查看系统上到底发生了什么。

相关内容