Chaque fichier ou dossier dans un volume NTFS a un propriétaire. Certains fichiers système sont la propriété de TrustedInstaller, d’autres du compte SYSTEM et d’autres encore du groupe « Administrateurs ». Si un utilisateur crée un fichier ou un dossier, cet utilisateur est généralement le propriétaire du fichier ou du dossier. Le propriétaire est celui qui peut attribuer des autorisations (Autoriser ou Refuser) aux autres utilisateurs pour cet objet.
Si un utilisateur n’est pas le propriétaire d’un fichier ou d’un dossier ou n’a pas d’autorisations pour accéder au fichier, il obtient l’erreur « access is denied » lors de l’accès à l’objet. Si cet utilisateur est un administrateur, il peut prendre la propriété de l’objet en utilisant les propriétés du fichier ou du dossier – onglet Sécurité. Ensuite, il peut s’attribuer les autorisations requises.
Ce billet vous explique comment prendre la propriété d’un fichier ou d’un dossier, et lui attribuer les autorisations requises en utilisant la ligne de commande au lieu de l’interface graphique.
Windows inclut un outil de ligne de commande nommé Takeown.exe, qui peut être utilisé à partir d’une Invite de commande administrateur pour changer rapidement la propriété d’un fichier ou d’un dossier. Voici comment prendre la propriété d’un fichier ou d’un dossier et ensuite attribuer des permissions pour un compte en utilisant la ligne de commande.
- Prendre la propriété d’un fichier
- Attribuer des autorisations de fichiers
- Prise de propriété d’un dossier
- Changer la propriété de manière récursive:
- Attribuer des permissions de dossier
- Aide en ligne de commande:
- Méthodes plus faciles pour prendre la propriété
- Scriptum de commande
- Ajouter la commande « Take Ownership » au menu du clic droit
- Informations supplémentaires
- Icacls.exe peut également changer la propriété d’un fichier ou d’un dossier!
- Changer la propriété d’un fichier ou d’un dossier en utilisant icacls.exe
- Exemples : Ensemble #1 : Changement de propriété d’un seul fichier ou dossier
- Exemple #2 : Changer la propriété d’un dossier (sous-dossier et fichiers) de manière récursive
- Rétablir la propriété à TrustedInstaller
- Utilisation de la commande icacls.exe pour définir TrustedInstaller comme propriétaire d’un fichier
- icacls /setowner accès refusé?
- Utiliser SetACL.exe pour prendre la propriété et attribuer des permissions
- SetACL : arguments de la ligne de commande
- Exemples : Changer la propriété d’un seul fichier ou dossier:
- Exemples : Changer la propriété de manière récursive:
- Exemples : Attribuer les permissions requises pour un fichier ou un dossier :
- Exemples : Attribuer les permissions requises de manière récursive:
Prendre la propriété d’un fichier
Ouvrir une fenêtre d’invite de commande élevée. Utilisez la syntaxe suivante pour prendre la propriété d’un fichier :
TAKEOWN /F <filename>
Remplacez <filename> par le nom réel du fichier avec le chemin complet.
L’utilisateur actuellement connecté est maintenant le propriétaire du fichier.
Pour définir le groupe Administrators
le propriétaire du fichier, utilisez le commutateur /A
en plus :
TAKEOWN /F <filename> /A
-
/A
Donne la propriété au groupe Administrateurs au lieu de l’utilisateur actuel. Si/A
n’est pas spécifié, la propriété du fichier sera donnée à l’utilisateur actuellement connecté. Ce paramètre n’est pas sensible à la casse.
Si l’opération a réussi, vous devriez voir le message suivant :
« SUCCÈS : Le fichier (ou le dossier) : « nom de fichier » appartient maintenant à l’utilisateur « Nom de l’ordinateur\NNom de l’utilisateur ». »
ou
SUCCÈS : Le fichier (ou dossier) : « nom de fichier » appartient maintenant au groupe des administrateurs.
Attribuer des autorisations de fichiers
Puis, pour accorder aux administrateurs des autorisations de contrôle total pour le fichier, utilisez ICACLS. Voici la syntaxe:
ICACLS <filename> /grant administrators:F
Exemple 2 : Pour attribuer des autorisations de contrôle total à l’utilisateur actuellement connecté, utilisez cette commande:
ICACLS <filename> /grant %username%:F
%username% représente le nom de compte de l’utilisateur actuellement connecté. ICacls accepte cette variable directement.
Exemple 3 : Pour attribuer des autorisations de contrôle total à l’utilisateur nommé John
, utilisez cette commande :
ICACLS <filename> /grant John:F
Prise de propriété d’un dossier
Utilisez la syntaxe suivante :
takeown /f <foldername>
(ou)
takeown /f <foldername> /a
-
/a
Donne la propriété au groupe Administrateurs au lieu de l’utilisateur actuel. Si/a
n’est pas spécifié, la propriété sera donnée à l’utilisateur actuellement connecté. Ce paramètre n’est pas sensible à la casse.
Vous verrez la sortie suivante:
SUCCÈS : Le fichier (ou le dossier) : « nom_du_dossier » appartient maintenant à l’utilisateur « computername\username »
(ou)
SUCCES : Le fichier (ou le dossier) : « nom_du_dossier » appartient maintenant au groupe des administrateurs.
Changer la propriété de manière récursive:
Pour changer la propriété d’un dossier, de ses sous-dossiers et des fichiers dans chaque sous-dossier, utilisez cette syntaxe:
takeown /f <foldername> /r /d y
L’utilisateur actuellement connecté est maintenant le propriétaire du dossier.
Pour définir le groupe Administrators
propriétaire du dossier, de ses sous-dossiers et de ses fichiers de manière récursive, utilisez le commutateur /A
en plus :
TAKEOWN /F <foldername> /a /r /d y
-
/R
Récurseur : demande à l’outil d’opérer sur les fichiers du répertoire spécifié et de tous les sous-répertoires. -
/D
prompt Réponse par défaut utilisée lorsque l’utilisateur actuel n’a pas l’autorisation « list folder » sur un répertoire. Cela se produit lors d’une opération récursive (/R) sur les sous-répertoires. Valeurs valides « Y » pour prendre la propriété ou « N » pour passer.
Attribuer des permissions de dossier
Puis pour attribuer au groupe Administrateurs des permissions de contrôle complet pour le dossier, utilisez cette syntaxe:
icacls <foldername> /grant administrators:F /T
Le paramètre /T est ajouté pour que l’opération soit effectuée à travers tous les sous-répertoires et fichiers de ce dossier.
Aide en ligne de commande:
Pour connaître les informations d’utilisation complètes de Takeown.exe et ICacls.exe, exécutez ces commandes à partir d’une fenêtre d’invite de commande.
takeown /?
icacls /?
Méthodes plus faciles pour prendre la propriété
Scriptum de commande
Pour simplifier davantage le processus de prise de propriété, Tim Sneath de Microsoft fournit un fichier .CMD (script de commande Windows) qui prend la propriété et attribue des autorisations de contrôle complet aux administrateurs pour le répertoire. Pour plus d’informations, lisez l’article de Tim intitulé Secret #11 : Supprimer l’indélébile.
Ceci utilise à nouveau le verbe spécial runas dans Windows Vista et supérieur, que j’ai couvert précédemment (REF RunAs).
via WinMatrix.com
Télécharger takeown_context.reg et enregistrer sur le Bureau. Faites un clic droit sur le fichier et choisissez Fusionner. Cliquez sur Oui lorsqu’on vous demande une confirmation. Cela ajoute une commande étendue nommée Take Ownership dans le menu contextuel des fichiers et des répertoires. Pour accéder à la commande, vous devez appuyer sur la touche SHIFT et la maintenir enfoncée, puis cliquer avec le bouton droit de la souris sur un fichier ou un dossier.
(Vous pouvez en savoir plus sur ce tweak dans l’article Prendre la propriété d’un fichier ou d’un dossier via le menu contextuel du clic droit dans Windows.)
Informations supplémentaires
La section ci-dessus couvre la plupart des choses dont vous avez besoin. Lisez ci-dessous si vous avez besoin de plus de conseils sur ce sujet.
Icacls.exe peut également changer la propriété d’un fichier ou d’un dossier!
Takeown.exe et Icacls.exe sont les deux outils de console intégrés dans Windows, qui vous permet de changer la propriété d’un fichier ou d’un dossier et d’attribuer des autorisations de contrôle d’accès, respectivement. Takeown.exe définit le compte utilisateur actuellement connecté comme propriétaire d’un objet (fichier ou dossier).
Cependant, avec Takeown.exe, vous ne pouvez pas faire d’un autre compte le propriétaire d’un objet.
Savez-vous que l’outil icacls.exe peut également être utilisé pour changer la propriété ?
Pour changer la propriété à un compte tiers (c’est-à-dire, le compte qui n’est pas actuellement connecté) ou un groupe, vous pouvez utiliser icacls.exe avec l’argument de ligne de commande /setowner
, au lieu de takeown.exe.
Changer la propriété d’un fichier ou d’un dossier en utilisant icacls.exe
Nous avons vu comment changer la propriété en utilisant icacls.exe dans la dernière partie de l’article Prendre la propriété d’un fichier ou d’un dossier en utilisant la ligne de commande dans Windows. Voici d’autres exemples:
Voici la syntaxe de la ligne de commande pour changer la propriété d’un fichier ou d’un dossier en utilisant icacls.exe:
icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"
Exemples : Ensemble #1 : Changement de propriété d’un seul fichier ou dossier
icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"
Si l’opération a réussi, vous verrez le message suivant:
processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files
Exemple #2 : Changer la propriété d’un dossier (sous-dossier et fichiers) de manière récursive
Pour changer la propriété d’un dossier, de ses sous-dossiers et de tous les fichiers de tous les sous-dossiers de manière récursive, utilisez le commutateur /T
(traverse) en plus:
icacls "folder_name" /setowner "Administrators" /T
-
/T
indique que cette opération est effectuée sur tous les fichiers/répertoires correspondants sous les répertoires spécifiés dans le nom.
La commande ci-dessus définit TrustedInstaller comme le propriétaire du dossier, de ses sous-dossiers et de tous les fichiers de tous les sous-dossiers.
Rétablir la propriété à TrustedInstaller
Parfois, pour résoudre un problème, vous devez modifier un fichier de données tel que XML ou une clé de registre appartenant à TrustedInstaller. Pour cela, vous devez d’abord prendre la propriété du fichier, du dossier ou de la clé de registre.
Après avoir modifié les fichiers ou les paramètres, vous devez redonner la propriété à TrustedInstaller, si TrustedInstaller était le propriétaire précédent ou original. Pour redonner la propriété à TrustedInstaller, procédez comme suit :
Le service Windows Modules Installer ou TrustedInstaller permet l’installation, la modification et la suppression des mises à jour Windows et des composants optionnels. Par défaut, TrustedInstaller est également le propriétaire de nombreuses clés de registre et fichiers système critiques.
- Cliquez avec le bouton droit de la souris sur un fichier ou une clé de registre, puis cliquez sur Permissions.
- Cliquez sur Avancé pour ouvrir la boîte de dialogue Paramètres de sécurité avancés.
- Près de « Propriétaire : », cliquez sur Modifier.
- Dans la boîte de dialogue Sélectionner l’utilisateur ou le groupe, tapez «
NT SERVICE\TrustedInstaller
» et appuyez sur ENTRÉE.
- Cliquez sur Appliquer, OK.
Cela change la propriété de l’objet (fichier, dossier ou clé de registre) en TrustedInstaller ou Windows Modules Installer.
Utilisation de la commande icacls.exe pour définir TrustedInstaller comme propriétaire d’un fichier
Depuis une fenêtre d’invite de commande admin, utilisez la syntaxe de ligne de commande suivante :
icacls "path\filename" /setowner "NT Service\TrustedInstaller"
Exemple:
icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"
TrustedInstaller est maintenant propriétaire du fichier WindowsStore.admx.
icacls /setowner accès refusé?
Parfois, la ligne de commande icacls.exe /setowner
peut rencontrer l’erreur suivante:
filename: Access is denied.Successfully processed 0 files; Failed processing 1 files
Cela peut arriver quand elle rencontre un lien dur NTFS. L’erreur apparaît généralement lorsque vous tentez de changer la propriété de fichiers protégés dans le répertoire Windows – par exemple, C:\Windows\Notepad.exe
. Un lien dur est la représentation du système de fichiers d’un fichier par lequel plus d’un chemin d’accès fait référence à un seul fichier dans le même volume.
Par exemple, les fichiers Notepad.exe ont deux fichiers liés dur, que vous pouvez voir en utilisant la commande suivante:
fsutil.exe hardlink list C:\Windows\notepad.exe
Vous pouvez voir que Notepad.exe est lié en dur aux fichiers suivants:
C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe
La commande icacls.exe /setowner
rencontre l’erreur ACCESS_DENIED
lors du traitement de ces liens en dur.
Notez que la documentation d’icacls.exe indique que « Cette option ne force pas un changement de propriété ; utilisez l’utilitaire takeown.exe à cette fin. »
Si vous rencontrez des erreurs « Access is Denied » lors de la définition de la propriété en utilisant Icacls, vous devrez peut-être compter sur Takeown.exe, SubInACL, ou l’utilitaire de ligne de commande tiers SetACL.exe (voir paragraphe suivant).
Utiliser SetACL.exe pour prendre la propriété et attribuer des permissions
SetACL.exe est un outil de ligne de commande tiers (de HelgeKlein.com) que nous avons déjà couvert auparavant.
SetACL : arguments de la ligne de commande
Avant de poursuivre, voyons la syntaxe de la ligne de commande pour changer la propriété et les permissions des fichiers/registres en utilisant SetACL.
SetACL -on objectname -ot objecttype -actn action
-
-on
: Spécifiez le chemin d’accès à l’objet sur lequel SetACL doit opérer (par ex, fichier, clé de registre, partage réseau, service ou imprimante). -
-ot
: Spécifiez le type d’objet. Pour modifier la propriété ou les autorisations d’un fichier ou d’un dossier, utilisez le type d’objetfile
. Pour les clés de registre, utilisez le type d’objetreg
-
-actn
: Spécifiez l’action quant à ce que SetACL doit faire contre l’objet spécifié. Pour prendre la propriété, définissez l’action commesetowner
. Pour changer les permissions, définissez l’action commeace
. -
-ownr
: Spécifiez le Nom ou le SID d’un administrateur (un utilisateur ou un groupe) dans ce format – par exemple,"n:Administrators"
(Voir la documentation de SetACL pour la liste complète des objets, des types et des actions prises en charge.)
Pour changer la propriété et accorder la permission de contrôle total, voici quelques exemples:
Exemples : Changer la propriété d’un seul fichier ou dossier:
setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:John"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:John"
Exemples : Changer la propriété de manière récursive:
Option 1 : Pour définir la propriété d’un dossier et de ses sous-dossiers (pas pour les fichiers) de manière récursive, utilisez l’un de ces exemples:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont
-
-rec
– la récursion est activée. -
cont
– Récursion, et traitement des répertoires uniquement.
Option 2 : Pour définir la propriété des fichiers dans un dossier et ses sous-dossiers (pas pour les fichiers) de manière récursive, utilisez l’un de ces exemples:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec obj
-
-rec
– la récursion est activée. -
obj
– Récursion, et traitement des fichiers uniquement.
Option 3 : Pour définir la propriété d’un dossier, de ses sous-dossiers et des fichiers de manière récursive, utilisez l’un de ces exemples :
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont_obj
-
-rec
– la récursion est activée. -
cont_obj
– Récursion, et traitement des répertoires et des fichiers.
Exemples : Attribuer les permissions requises pour un fichier ou un dossier :
Une fois que vous avez la propriété, vous pouvez attribuer les permissions requises pour un objet. Voici quelques exemples :
Pour attribuer les permissions pour un seul fichier ou dossier, utilisez l’un de ces exemples :
setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:John;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full"
Exemples : Attribuer les permissions requises de manière récursive:
Option 1 : Pour un dossier et des sous-dossiers (pas des fichiers) de manière récursive, utilisez l’un de ces exemples:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec contsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont
-
-rec
– la récursion est activée. -
cont
– Récursion, et traitement des répertoires uniquement.
Option 2 : Pour les fichiers dans un dossier et les sous-dossiers (pas les dossiers) de manière récursive, utilisez l’un de ces exemples:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec obj
-
-rec
– la récursion est activée. -
obj
– Récursion, et traitement des fichiers uniquement.
Option 3 : Pour un dossier, ses sous-dossiers, et les fichiers de manière récursive, utilisez l’un de ces exemples:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec cont_objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont_obj
-
-rec
– la récursion est activée. -
cont_obj
– Récursion, et traitement des répertoires et des fichiers.
Vous pouvez consulter la documentation officielle de SetACL pour connaître toutes ses capacités. Cependant, pour définir les permissions de propriété des fichiers et des dossiers &, takeown.exe et icacls.exe seraient plus que suffisants pour la plupart des utilisateurs.