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

36955
Miserable Variable

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

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


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

enter image description here

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

Я нашел этот вопрос в 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 .

7

1 ответ на вопрос

5
Pimp Juice IT

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

Попробуйте 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 
Благодарю. Я хочу избегать `TAKEOWN` /` SETOWNER`. Я предполагаю, что это меняет владельца и Windows Explorer только назначает разрешение. Miserable Variable 7 лет назад 0
Можете ли вы подтвердить, если только "ICACLS""/ Наследование: e / GRANT: r"": (OI) (CI) (X, M, F) / T / C` даст вам ожидаемый результат? Я обновлю свой ответ более подробно, если это так. Pimp Juice IT 7 лет назад 0
Вы должны вступить во владение этой папкой, если вы хотите иметь права доступа к этой конкретной папке, любой другой папке, вы можете избежать вступления во владение Ramhound 7 лет назад 0
Это работает для меня: `ICACLS" C: \ Program Files \ WindowsApps "/ Наследование: e / GRANT: r i063510: F / T / C`. Спасибо за вашу помощь. @Ramhound Я не могу понять из твоего комментария, когда мне нужно или не нужно вступать во владение. Miserable Variable 7 лет назад 0
@MiserableVariable Я только что обновил свой ответ с более подробной информацией. Pimp Juice IT 7 лет назад 0