Понимание "Отказано в доступе", так что разрешения могут быть отменены - icacls и takeown

  • Прежде чем стать владельцем файлов и папок, я хотел бы понять, как просматривать текущие разрешения, чтобы их можно было восстановить.
  • Я получаю сообщение "Отказано в доступе" для просмотра или сохранения разрешений с повышенным уровнем командной строки для местоположения: C:\ProgramData\Microsoft\Windows\SystemData в среде Windows 10.
  • Похоже, что мне может понадобиться сначала взять на себя ответственность, затем просмотреть права доступа и использовать что-то вроде команды icacls 'reset', чтобы исправить это позже.

Если я пытаюсь просмотреть разрешения:

C:\Windows\system32>icacls "C:\ProgramData\Microsoft\Windows\SystemData"
C:\ProgramData\Microsoft\Windows\SystemData: Access is denied.
Successfully processed 0 files; Failed processing 1 files

Если я пытаюсь сохранить файл ACL:

C:\Windows\system32>icacls C:\ProgramData\Microsoft\Windows\SystemData /save "C:\SystemData.acl" /t
C:\ProgramData\Microsoft\Windows\SystemData: Access is denied.
Successfully processed 0 files; Failed processing 1 files

В ответ на "Понимание того, как использовать Icals & Takeown", владельцем папки был NT SERVICE\TrustedInstaller, который может повлиять на стандарт Windows 10, хотя я только догадываюсь.

Должен ли я просто использовать takeown и icals, выяснить права доступа и затем использовать команду reset.

takeown /f C:\ProgramData\Microsoft\Windows\SystemData /r
icacls C:\ProgramData\Microsoft\Windows\SystemData /grant "%USERDOMAIN%\%USERNAME%":(F) /t
Make Changes
icacls C:\ProgramData\Microsoft\Windows\SystemData /setowner "NT SERVICE\TrustedInstaller" /t
icacls C:\ProgramData\Microsoft\Windows\SystemData /reset /t

Точно так же с ACL, нужно будет вступить во владение, прежде чем создавать, или есть обходной путь?

Чтение:

1 ответ

Решение

Как просмотреть разрешения на доступ к запрещенной папке в Windows 10

Я предположил, что система будет одним пользователем, который будет иметь доступ к этой папке, поэтому, следуя этой мысли, я нашел решение для запуска командной строки от имени системы.

Смотрите - SO. Как вы запускаете CMD.exe под учетной записью локальной системы?

  1. Загрузите PStools от SysInternals, Microsoft.
  2. Запустите CMD от имени администратора, перейдите в папку psexec.exe & psexec64.exe и выполните следующее:
psexec -i -s cmd.exe 

или если вы хотите 64 бит ...

psexec64 -i -s cmd.exe
  1. Теперь окно командной строки открылось как системное.

  2. Теперь мы можем просмотреть разрешения для папки ...

icacls C:\ProgramData\Microsoft\Windows\SystemData

C:\ProgramData\Microsoft\Windows\SystemData 
                                            NT SERVICE\TrustedInstaller:(F)
                                            NT AUTHORITY\SYSTEM:(F)
  1. Также ACL теперь может быть сохранен и изменен, как описано здесь
icacls C:\ProgramData\Microsoft\Windows\SystemData /save "C:\SystemData.acl" /t
icacls C:\ProgramData\Microsoft\Windows /restore "C:\SystemData.acl"
  1. В стандартной командной строке администратора, а не в системе, еще не удалось выработать способ восстановления прав собственности после использования takeown. В настоящее время с помощью указанных выше разрешений системной командной строки или решения ACL можно восстановить. Однако обнаружили, что можно просто запустить пакетный сценарий через планировщик задач в качестве системы, тогда не нужно менять разрешения.

Чтение:

Другие вопросы по тегам