Зачем использовать get-acl -Path 'C:\Program Files' | set-acl -Path 'D:\Program Files'
как администратор сообщает мне, мне не разрешено устанавливать право собственности при использовании icACLs "C:\Program Files" /save Perms.txt
затем icACLs D:\ /restore Perms.txt
работает без ошибок?
Вы наткнулись на токены безопасности.
Некоторое время назад Microsoft использует TokenPrivilege
для управления более глубокими правами, такими как «Стать владельцем» см. этот список прав токена
думаю icACLs
правильно получает эти жетоны без вашего участия. В Powershell вам нужно получить эти токены самостоятельно.
В сети есть несколько HowTos. Я лично использую этот: https://www.raydbg.com/2017/Token-Privileges-in-PowerShell/
Он работает, загружая некоторые библиотеки DLL по умолчанию (kernel32.dll и advapi.dll) и используя их для предоставления текущему процессу необходимых ему TokenPrivileges. Это будут: SeTakeOwnershipPrivilege
и SeRestorePrivilege