为什么get-acl -Path 'C:\Program Files' | set-acl -Path 'D:\Program Files'
以管理员身份使用时告诉我不允许设置所有权,但使用icACLs "C:\Program Files" /save Perms.txt
时却icACLs D:\ /restore Perms.txt
没有错误?
答案1
您偶然发现了安全令牌。
微软已经使用了一段时间TokenPrivilege
来管理更深层次的权利,例如“取得所有权”请参阅此代币权利列表
我认为icACLs
无需您这样做即可正确获取这些令牌。在 Powershell 中,您需要自己获取这些令牌。
网上有很多 HowTo。我个人用的是这个:https://www.raydbg.com/2017/Token-Privileges-in-PowerShell/
它的工作原理是加载一些默认的 Windows dll(kernel32.dll 和 advapi.dll),并使用这些 dll 为当前进程提供所需的 TokenPrivileges。这些 dll 包括
SeTakeOwnershipPrivilege
:SeRestorePrivilege