在系统之间迁移文件 ACL 上的 SID

在系统之间迁移文件 ACL 上的 SID

实际上,我所做的是在我的旧 XP 机器上安装 Windows 7,而且由于我使用的是 x64 并且以前使用过 x32,所以没有升级路径。

我使用用户状态迁移工具 (USMT) 移动了很多东西,对于移动的东西,它修复了文件/目录 ACL,但不是全部。相当多的数据留在驱动器上。

所有剩余数据都具有与 XP 系统相关的 ACL。具体来说,大多数文件都归旧系统的主要用户帐户所有。

那么,如何用新的 SID 替换 ACL 中的一个 SID,并将所有权限从旧用户重新映射到新用户?

答案1

我曾经icacls <path>\* /save aclfile /t创建过所有权限的备份。必须以管理员身份运行,否则 icacls 无法读取 ACL 来保存它们。

本来我想使用: icacls /restore aclfile /substitute <oldsid> <newsid>,但是它不起作用,因为它无法找出 oldsid 的用户名。

所以我使用文本编辑器,用蛮力替换了 aclfile 中的所有引用

然后用来iacls <path> /restore aclfile放回新的权限。

相关内容