Краткий ответ: добавить /t
к (i) cacls
Длинный ответ:
Вот мой скрипт, который я использую, когда хочу, чтобы файл был доступен любому пользователю. Он включает комментарии о том, что делает каждый флаг. Просто поместите это в командный файл где-нибудь в %AppData%
папке.
REM --v2 ----------------------------------------------------------- takeown /r /d y /f %1 icacls %1 /t /grant Everyone:F REM takeown /r /d y /f will set the owner to the Administrators group recursively. REM /t makes it recursive REM /grant Sets the permision to the following user, replaces existing permissions for the specified uesr. REM :f Grants full controll permission. REM ---------------------------------------------------------------- REM --v1 ----------------------------------------------------------- REM cacls %1 /t /e /g Everyone:f REM /t makes it recursive REM /e Edits the ACL instead of replaceing it REM /g Grants permissions to the following users REM :f Grants full controll permission. REM ----------------------------------------------------------------
Затем %AppData%\Microsoft\Windows\SendTo
создайте ярлык для пакетного сценария.
Отредактируйте свойства этого ярлыка, перейдите Advanced...
и установите флажокRun as Administrator.
Теперь у right click menu -> Send To
вас будет элемент с именем Fix Permissions
любой файл или папка, в которой вы делаете Send To
, и группа «Все» будет иметь Full Access
права доступа. Если вы выполните его в папке, он будет рекурсивно проходить через него и применять разрешения ко всем дочерним элементам в папке.
Я сохраняю пакетный файл в %AppData%
папке, потому что я нахожусь в домене, и это делает его частью моего перемещаемого профиля, поэтому он будет включен и готов к использованию на любом компьютере, к которому я подключаюсь.