Comment puis-je accorder des autorisations à un utilisateur sur un répertoire (lecture, écriture, modification) à l'aide de la ligne de commande Windows?
277
Comment puis-je accorder des autorisations à un utilisateur sur un répertoire (lecture, écriture, modification) à l'aide de la ligne de commande Windows?
À partir de Vista, cacls
est obsolète. Voici les deux premières lignes d'aide:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Vous devriez utiliser à la icacls
place. Voici comment vous accordez à John le contrôle total sur le D:\test
dossier et tous ses sous-dossiers:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Selon la documentation MS:
F
= Contrôle totalCI
= Container Inherit - Cet indicateur indique que les conteneurs subordonnés hériteront de cet ACE.OI
= Object Inherit - Cet indicateur indique que les fichiers subordonnés hériteront de l'ACE./T
= Appliquer récursivement aux fichiers et sous-dossiers existants. ( OI
et CI
ne s'appliquent qu'aux nouveaux fichiers et sous-dossiers). Crédit: commentaire de @AlexSpence.Pour une documentation complète, vous pouvez exécuter " icacls
" sans argument ou voir la documentation Microsoft ici et ici
C:\>icacls "D:\test" /grant "John:(OI)(CI)F" /T
Vous pouvez également utiliser ICACLS.
Pour accorder au groupe d' utilisateurs le contrôle total sur un dossier:
Pour accorder Modifier l' autorisation aux utilisateurs IIS pour
C:\MyFolder
(si vous avez besoin de votre IIS a la capacité de fichiers R / W dans le dossier spécifique):Si vous faites ICACLS /? vous pourrez voir toutes les options disponibles.
la source
cacls
disparu, c'est encore plus de raisons d'utiliser icacls ./grant Users:(OI)(CI)F
utiliséUsers
par autre chose ou NON? Selonicacls "C:\MyFolder" /grant Users:F
Ouvrez une invite de commande, puis exécutez cette commande:
F
donne un accès complet./q /c /t
applique les autorisations aux sous-dossiers.Remarque: Parfois, «Exécuter en tant qu'administrateur» peut aider.
la source
Utilisez la
cacls
commande. Voir les informations ici .la source
cacls
est pertinent; il est toujours disponible enWindows 10
; Microsoft déconseilleraitcmd.exe
également Powershell.cmd.exe
n'est pas déconseillé et ne le sera probablement pas, ce n'est donc pas du tout un point en faveur duicacls
contraire, bien au contraire.cacls.exe
. Je n'ai pas non plus mentionné quecmd.exe
c'est déjà obsolète. Je pense que les gens devraient au moins être conscients de sa disponibilité dans les versions supérieures, même uniquement pour une compatibilité descendante ou pour toute autre raison.J'essaie la méthode ci-dessous et cela fonctionne pour moi:
1. ouvrez
cmd.exe
2.
takeown /R /F *.*
3.
icacls * /T /grant [username]:(D)
4.
del *.* /S /Q
Pour que les fichiers puissent devenir mon propre accès et les affecter à "Supprimer", puis je peux supprimer les fichiers et les dossiers.
la source
Autorisations corrompues: retrouver l'accès à un dossier et à ses sous-objets
Bien que la plupart des réponses affichées en réponse à la question aient un certain mérite, à mon humble avis, aucune d'entre elles ne donne une solution complète. Ce qui suit (peut être) une solution parfaite pour Windows 7 si vous êtes verrouillé d'un dossier par des paramètres d'autorisation corrompus:
Pour Windows 10, l'utilisateur / SID doit être spécifié après l'
/remove:d
option:.
Remarques :
La commande est appliquée au répertoire spécifié.
La spécification de l'utilisateur "Tout le monde" définit l'autorisation la plus large possible, car elle inclut tous les utilisateurs possibles.
L'option "/ remove: d" supprime tous les paramètres DENY explicites qui peuvent exister, car ceux-ci remplacent les paramètres ALLOW explicites: un préalable nécessaire à la création d'un nouveau paramètre ALLOW. Ce n'est qu'une précaution, car il n'y a souvent aucun paramètre DENY présent, mais mieux vaut prévenir que guérir.
L'option "/ grant" crée un nouveau paramètre ALLOW, une autorisation explicite qui remplace (": r") tous les paramètres ALLOW explicites qui peuvent exister.
Le paramètre "F" (c'est-à-dire l'autorisation créée) en fait une attribution de contrôle COMPLET.
Le paramètre "/ T" ajoute la récursivité, en appliquant ces modifications à tous les sous-objets actuels dans le répertoire spécifié (c'est-à-dire les fichiers et sous-dossiers), ainsi qu'au dossier lui-même.
Les paramètres "(OI)" et "(CI)" ajoutent également la récursivité, en appliquant ces modifications aux sous-objets créés ultérieurement.
.
ADDENDA (10/02/2019) -
La ligne de commande Windows 10 ci-dessus m'a été aimablement suggérée aujourd'hui, alors la voici. Je n'ai pas Windows 10 pour le tester, mais essayez-le si vous en avez (et pourrez-vous poster un commentaire ci-dessous).
La modification concerne uniquement la suppression du paramètre DENY dans un premier temps. Il est possible qu'aucun paramètre DENY ne soit présent, de sorte que cette option peut ne faire aucune différence. Je comprends, sous Windows 7, que vous n'avez pas besoin de spécifier un utilisateur après / supprimer: d mais je peux me tromper à ce sujet!
.
ADDENDA (21/11/2019) -
L'utilisateur astark recommande de remplacer Tout le monde par le terme * S-1-1-0 pour que la commande soit indépendante de la langue. Je n'ai qu'une installation de Windows en anglais, donc je ne peux pas tester cette proposition, mais cela semble raisonnable.
la source
Invalid parameter "/remove:d"
Je me suis battu avec pendant un certain temps et que la combinaison des réponses dans ce fil a fonctionné pour moi (sous Windows 10):
1. Ouvrez cmd ou PowerShell et accédez au dossier avec les fichiers
2. takeown / R / F .
3. icacls * / T / grant dan: F
Bonne chance!
la source
Juste au cas où quelqu'un d'autre trébucherait sur cette page, si vous voulez enchaîner diverses autorisations dans la même commande, j'ai utilisé ceci:
Notez la chaîne csv pour les différentes autorisations.
la source
Avec un script vba Excel pour provisionner et créer des comptes. Je devais accorder des autorisations de droits complets sur le dossier et les sous-dossiers créés par l'outil à l'aide du compte x de nos administrateurs à notre nouvel utilisateur.
cacls ressemblait à ceci: cacls \ FileServer \ Users \ Username / e / g Domain \ Username: C
J'avais besoin de migrer ce code vers Windows 7 et au-delà. Ma solution s'est avérée être:
icacls \ FileServer \ Users \ Nom d'utilisateur / grant: r Domaine \ Nom d'utilisateur: (OI) (CI) F / t
/ grant: r - Accorde les droits d'accès utilisateur spécifiés. Les autorisations remplacent les autorisations explicites précédemment accordées. Sans: r, les autorisations sont ajoutées à toutes les autorisations explicites précédemment accordées
(OI) (CI) - Ce dossier, sous-dossiers et fichiers.
F - Accès complet
/ t - Parcourez tous les sous-dossiers pour faire correspondre les fichiers / répertoires.
Cela m'a donné un dossier sur ce serveur que l'utilisateur ne pouvait voir que ce dossier et créé des sous-dossiers, qu'il pouvait lire et écrire des fichiers. En plus de créer de nouveaux dossiers.
la source
XCACLS.VBS est un script très puissant qui changera / modifiera les informations ACL. c: \ windows \ system32 \ cscript.exe xcacls.vbs aide renvoie tous les commutateurs et options.
Vous pouvez obtenir la distribution officielle de la page de support Microsoft
la source
XCACLS.VBS
se trouve?La création de dossiers en vrac et la permission d'accord me fonctionnent en utilisant le script powershell ci-dessous.
Remarque: Vous devez créer le même nom d'utilisateur de domaine dans le fichier csv sinon vous obtiendrez des problèmes d'autorisation
la source
la source
excellent point Călin Darie
J'avais beaucoup de scripts pour utiliser cacls, je les déplace vers icacls, mais je n'ai jamais trouvé de script pour changer l'exemple de volume de montage racine: d: \ datafolder. J'ai finalement créé le script ci-dessous, qui monte le volume en tant que lecteur temporaire, puis applique sec. puis le démonte. C'est la seule façon dont j'ai trouvé que vous pouvez mettre à jour la sécurité de montage racine.
1 obtient le GUID de montage du dossier dans un fichier temporaire, puis lit le GUID pour monter le volume en tant que lecteur temporaire X: applique sec et enregistre les modifications, puis démonte le volume uniquement à partir du lecteur X: afin que le dossier monté ne soit pas modifié ou interrompu. puis le sec appliqué.
voici un exemple de mon script:
la source
Je suis administrateur et certains scripts ont placé l'autorisation "Refuser" sur mon nom sur tous les fichiers et sous-dossiers d'un répertoire. L'exécution de la
icacls "D:\test" /grant John:(OI)(CI)F /T
commande n'a pas fonctionné, car il semble qu'elle n'ait pas supprimé le droit "Refuser" de mon nom de cette liste.La seule chose qui a fonctionné pour moi est de réinitialiser toutes les autorisations avec la
icacls "D:\test" /reset /T
commande.la source
dans Windows 10 fonctionnant sans "c:>" et ">"
Par exemple:
(cela corrige également les erreurs 2502 et 2503)
la source
C'est ce qui a fonctionné pour moi:
Ouvrez manuellement le dossier dont l'accès est refusé.
Sélectionnez le fichier exécutable / d'application dans ce dossier.
Faites un clic droit dessus et allez dans Properties->Compatibility
Maintenant, voyez le Privilege Levelet vérifiez-leRun As Administrator
Cliquez sur Change Settings for all users.
Le problème est maintenant résolu.
la source