无法以管理员身份删除连接点

无法以管理员身份删除连接点

我在 Windows 11 中有一个连接点,它指向一个已删除的文件夹,我无法以任何方式删除它。takeown报告成功取得所有权,但随后rmdirfsutil reparsepoint delete无法删除它 - 每次我都收到“访问被拒绝”的消息,即使我在 shell 中以管理员身份工作。有人知道如何删除这种令人厌恶的东西吗?

答案1

Windows 具有一些允许绕过文件权限的进程权限 - 类似于 root 在类 Unix 系统中可以执行的操作(除了在 Windows 中存在“授予但禁用”的中间状态 - 所有管理员都默认被授予这些权限,但进程在使用前仍需要手动激活它们)。

从提升的(管理员)PowerShell 执行以下操作:

  1. 从 Microsoft 的 PSGallery 安装 PSPrivilege 模块:

    Install-Module -Name PSPrivilege -Scope CurrentUser
    

    (它是一个第三方模块,但其作者因其在该领域的 Python 和 PowerShell/.NET 项目而闻名。)

  2. 启用“备份”和“恢复”权限:

    Enable-ProcessPrivilege SeBackupPrivilege, SeRestorePrivilege
    

    这只会对当前 PowerShell 窗口产生影响。

  3. 现在您应该能够删除对象,而不管其 ACL 如何:

    del -Force the_bad_junction
    

(执行 Enable-ProcessPrivilege 的另一种方法是安装 ProcExp 或 Process Hacker,打开 powershell.exe 进程的属性窗口,然后使用“Token”选项卡启用权限。)


您收到“拒绝访问”的原因可能有几个,与文件权限无关(例如包括文件完整性级别;防病毒软件或其他奇怪的驱动程序;或者在服务器决定您没有权限时尝试通过网络共享执行此操作)。

如果磁盘是本地的,您可以将其连接到 Linux 系统,该系统将忽略所有 NTFS ACL 和所有驱动程序施加的限制:

  1. 制作一个捆绑了 ntfs-3g 的 Linux 实时 CD/USB(例如 Ubuntu 就可以)。

  2. 如果需要,请暂时禁用安全启动。

  3. 再次启动 Windows,然后重启从 Windows 进入 Linux。(具体来说,使用“重新启动”,而不是“关机”,这样 Windows 将完全卸载 NTFS 分区,您无需费心禁用快速启动。)

  4. 该删除的就删除吧。

相关内容