Wiersz poleceń, aby na stałe uzyskać dostęp do folderu

13

AKTUALIZACJA Podczas gdy byłem w stanie użyć metody opisanej w zaakceptowanej odpowiedzi, gdy zawiodła po raz drugi lub po prostu sprawiała zbyt wiele problemów.

Podczas dalszych poszukiwań znalazłem SetACL autorstwa Helge Klein, który jest znacznie lepszy i robi dokładnie to, co jest potrzebne.


Nie mogę uzyskać dostępu do niektórych folderów, np c:\Program Files\WindowsApps. Za pośrednictwem wiersza polecenia pojawia się błąd „ Odmowa dostępu ” i za pomocą Eksploratora Windows pojawia się okno dialogowe z informacją „ Obecnie nie masz uprawnień dostępu do tego folderu

wprowadź opis zdjęcia tutaj

Kliknięcie Kontynuuj daje mi dostęp, ale chciałbym przyznać sobie dostęp za pomocą wiersza poleceń; aby moje skrypty nie napotkały tego problemu działającego w tym samym kontekście bezpieczeństwa.

Znalazłem to pytanie w witrynie Microsoft Technet, ale nie mogłem go uruchomić. Zauważ, że już korzystam z Powershell jako administrator.

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

Jeśli to ważne, używam systemu Windows 10 uaktualnionego z systemu Windows 8.1 .

Nędzna zmienna
źródło

Odpowiedzi:

12

Obecnie nie masz uprawnień dostępu do tego folderu

Wypróbuj ICACLS i / lub TAKEOWN z poniższą składnią w stosunku do folderu z nazwą użytkownika w razie potrzeby.

Spróbuj najpierw tylko poleceń ICACLS, a jeśli to nie rozwiąże , uruchom polecenie TAKEOWN, a następnie ponownie uruchom polecenia ICACLS .


Polecenia ICACLS

  • Przyznaj wyraźny, pełny dostęp kontrolny do tego folderu wszystkim podfolderom, a pliki pozostawiając wszystkie odziedziczone uprawnienia na miejscu i kontynuuj w razie błędu

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r <UserName>:(F) /T /C
    
  • Udziel wyraźnej modyfikacji dostępu do tego folderu wszystkim podfolderom, a pliki pozostawiając wszystkie odziedziczone uprawnienia na miejscu i kontynuuj w razie błędu

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
  • Zmień właściciela tego folderu i wszystkich podfolderów i plików i kontynuuj w razie błędu

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

Komendy TAKEOWN

  • Uruchom to jako konto, któremu chcesz udzielić prawa własności, a zostanie ono zmienione na właściciela folderu i wszystkich podfolderów i plików

    TAKEOWN /F "<FolderPath>" /R /D Y
    
Pimp Juice IT
źródło
Dzięki. Chcę uniknąć TAKEOWN/ SETOWNER. Zakładam, że zmienia właściciela, a Eksplorator Windows przypisuje tylko uprawnienia.
Nędzna Zmienna
Czy możesz potwierdzić, czy właśnie ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /Cto da ci oczekiwany wynik? Zaktualizuję moją odpowiedź bardziej szczegółowo, jeśli tak.
Pimp Juice IT
Musisz przejąć na własność ten folder, jeśli chcesz mieć uprawnienia do tego konkretnego folderu, dowolnego innego folderu, którego możesz uniknąć
Ramhound,
Działa to dla mnie ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C. Dzięki za pomoc. @Ramhound Nie mogłem zrozumieć z twojego komentarza, kiedy to robię lub nie muszę przejmować własności.
Nędzna Zmienna
@MiserableVariable Właśnie zaktualizowałem swoją odpowiedź z dalszymi szczegółami.
Pimp Juice IT