Командний рядок для постійного отримання доступу до папки


13

ОНОВЛЕННЯ Хоча мені вдалося використати описаний у прийнятій відповіді метод, коли він не вдався вдруге або просто заважав.

Шукаючи далі, я знайшов SetACL від Helge Klein, який набагато перевершує і робить саме те, що потрібно.


Я не можу отримати доступ до певних папок, наприклад 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
    

Дякую. Я хочу уникати TAKEOWN/ SETOWNER. Я припускаю, що він змінює власника і Windows Explorer призначає лише дозвіл.
Жалюгідна змінна

Чи можете ви підтвердити, чи тільки ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /Cтоді воля дасть вам очікуваний результат? Я оновлю свою відповідь більш детально, якщо так.
Pimp Juice IT

Ви повинні взяти право власності на цю папку, якщо ви хочете отримати дозволи на цю конкретну папку, будь-яку іншу папку, ви не зможете взяти право власності
Ramhound

Це працює для мене: ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C. Спасибі за вашу допомогу. @Ramhound Я не міг зрозуміти з вашого коментаря, коли мені це потрібно чи не потрібно брати на себе право власності.
Жалюгідна змінна

@MiserableVariable Я щойно оновив свою відповідь з подальшими деталями.
Pimp Juice IT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.