Ligne de commande pour accéder en permanence au dossier

13

MISE À JOUR Alors que j'ai pu utiliser la méthode décrite dans la réponse acceptée une fois qu'elle a échoué une deuxième fois ou qu'elle posait simplement trop de problèmes.

En cherchant plus loin, j'ai trouvé SetACL par Helge Klein qui est de loin bien supérieur et fait exactement ce qui est nécessaire.


Je ne peux pas accéder à certains dossiers, par exemple c:\Program Files\WindowsApps. Via la ligne de commande, j'obtiens une erreur " L'accès est refusé " et via l'Explorateur Windows, j'obtiens une fenêtre contextuelle indiquant " Vous n'avez actuellement pas la permission d'accéder à ce dossier "

entrez la description de l'image ici

Cliquer sur Continuer me donne accès, mais je voudrais m'accorder l'accès en utilisant la ligne de commande; afin que mes scripts ne rencontrent pas ce problème en cours d'exécution dans le même contexte de sécurité.

J'ai trouvé cette question sur Microsoft Technet mais je n'ai pas pu la faire fonctionner. Notez que j'exécute déjà Powershell en tant qu'administrateur.

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

Si cela est important, j'utilise Windows 10 mis à niveau à partir de Windows 8.1 .

Variable misérable
la source

Réponses:

12

Vous n'êtes actuellement pas autorisé à accéder à ce dossier

Essayez ICACLS et / ou TAKEOWN avec la syntaxe ci-dessous par rapport au dossier avec le nom d'utilisateur selon les besoins.

Essayez d' abord les commandes ICACLS et si cela ne résout pas , exécutez les commandes TAKEOWN, puis réexécutez les commandes ICACLS .


Commandes ICACLS

  • Accordez un accès de contrôle total explicite à ce dossier à tous les sous-dossiers et aux fichiers en laissant toutes les autorisations héritées en place et continuez en cas d'erreur

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r <UserName>:(F) /T /C
    
  • Accordez un accès de modification explicite à ce dossier à tous les sous-dossiers et aux fichiers en laissant toutes les autorisations héritées en place et continuez en cas d'erreur

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
  • Changez le propriétaire de ce dossier et de tous les sous-dossiers et fichiers et continuez en cas d'erreur

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

Commandes TAKEOWN

  • Exécutez-le en tant que compte auquel vous souhaitez accorder la propriété, et il sera remplacé par le propriétaire du dossier et tous les sous-dossiers et fichiers

    TAKEOWN /F "<FolderPath>" /R /D Y
    
Pimp Juice IT
la source
Merci. Je veux éviter TAKEOWN/ SETOWNER. Je suppose que cela change le propriétaire et que l'Explorateur Windows attribue uniquement une autorisation.
Miserable Variable
Pouvez-vous confirmer si seulement la ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /Cvolonté vous donne alors le résultat attendu? Je mettrai à jour ma réponse avec plus de détails si c'est le cas.
Pimp Juice IT
Vous devez vous approprier ce dossier si vous voulez des autorisations sur ce dossier spécifique, tout autre dossier, vous pouvez éviter de vous en approprier
Ramhound
Cela fonctionne pour moi: ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C. Merci de votre aide. @Ramhound Je ne pouvais pas comprendre de votre commentaire quand je fais ou ne dois pas prendre possession.
Miserable Variable
@MiserableVariable Je viens également de mettre à jour ma réponse avec plus de détails.
Pimp Juice IT