Понимание «Отказано в доступе», чтобы можно было отменить разрешения — icacls и takeown

Понимание «Отказано в доступе», чтобы можно было отменить разрешения — 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, выяснить разрешения, а затем использовать команду сброса.

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

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

См. - Как запустить 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 разрешения могут быть восстановлены. Однако обнаружил, что можно просто запустить пакетный скрипт через планировщик задач как System, тогда не нужно менять разрешения.

Чтение:

Связанный контент