Командная строка для постоянного доступа к папке

13

ОБНОВЛЕНИЕ Несмотря на то, что я мог использовать метод, описанный в принятом ответе, один раз он не удался или просто доставлял слишком много хлопот.

В поисках дальнейшего я нашел SetACL Хельге Кляйн, который намного лучше и делает именно то, что нужно.


Я не могу получить доступ к определенным папкам, например c:\Program Files\WindowsApps. В командной строке я получаю сообщение об ошибке « Доступ запрещен », а в проводнике Windows появляется диалоговое окно с сообщением « У вас нет прав доступа к этой папке ».

введите описание изображения здесь

Нажатие на кнопку « Продолжить» дает мне доступ, но я хотел бы предоставить мне доступ с помощью командной строки; так что мои сценарии не сталкиваются с этой проблемой, работающей в том же контексте безопасности.

Я нашел этот вопрос в Microsoft Technet, но не смог заставить его работать. Обратите внимание, что я уже использую Powershell от имени администратора.

PS C:\WINDOWS\system32> icacls "C:\Program Files\WindowsApps" /grant i063510:F /inheritance:e
C:\Program Files\WindowsApps: Access is denied.
Successfully processed 0 files; Failed processing 1 files
PS C:\WINDOWS\system32> icacls "C:\Program Files" /grant i063510:F /inheritance:e
C:\Program Files: Access is denied.
Successfully processed 0 files; Failed processing 1 files

Если это имеет значение, я использую Windows 10, обновленную с Windows 8.1 .

Жалкая переменная
источник

Ответы:

12

У вас нет прав доступа к этой папке

Попробуйте ICACLS и / или TAKEOWN с приведенным ниже синтаксисом для папки с именем пользователя, если это необходимо.

Сначала попробуйте только команды ICACLS, и если это не помогло , запустите команды TAKEOWN, а затем снова введите команды ICACLS .


Команды ICACLS

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

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r <UserName>:(F) /T /C
    
  • Предоставьте явное изменение доступа к этой папке всем подпапкам и файлам, оставив все унаследованные разрешения на месте, и продолжайте работу при ошибке

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
  • Измените владельца этой папки и всех вложенных папок и файлов и продолжайте в случае ошибки

    ICACLS "<FolderPath>" /SETOWNER "<UserName>" /T /C
    

ПРИНЯТЬ Команды

  • Запустите эту учетную запись как учетную запись, которой вы хотите предоставить право собственности, и она будет изменена на владельца папки и всех вложенных папок и файлов.

    TAKEOWN /F "<FolderPath>" /R /D Y
    
Сок Pimp IT
источник
Спасибо. Я хочу избежать TAKEOWN/ SETOWNER. Я предполагаю, что это меняет владельца и Windows Explorer только назначает разрешение.
Ужасная переменная
Можете ли вы подтвердить, если только ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /Cтогда даст вам ожидаемый результат? Я обновлю свой ответ более подробно, если так.
Сок Pimp IT
Вы должны вступить во владение этой папкой, если вы хотите иметь права доступа к этой конкретной папке, любой другой папке, вы можете избежать вступления во владение
Ramhound
Это работает для меня ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C. Спасибо за вашу помощь. @Ramhound Я не могу понять из твоего комментария, когда мне нужно или не нужно вступать во владение.
Ужасная переменная
@MiserableVariable Я только что обновил свой ответ с более подробной информацией.
Сок Pimp IT