Vista: Obtenir tous les droits sur un répertoire de manière permanente
Publié par Sam sur 25 février, 2008
M’énerver devant Vista qui ne veut pas que je trifouille quelquepart, ça va bien 5 minutes. J’ai donc cherché un peu et je me suis rendu compte qu’il y avait beaucoup d’articles peu clair à ce sujet. Je vais tenter d’expliquer la chose, au pire ça me servira de référence.
Pour la première fois dans un système d’exploitation de chez Microsoft, la gestion des droits est au coeur de l’utilisation quotidienne du système : Lorsque vous lancez un programme, il s’exécute avec les droits de votre compte utilisateur, et si ce compte n’a pas les droits requis pour accéder à un fichier ou répertoire particulier, le programme en question n’y aura pas accès. Dans certains cas, ceci peut se révéler très ennuyeux, par exemple pour installer dans %programfiles% un vieux jeu utilisant des fichiers de configuration locaux, ou lorsqu’on utilise un disque dur provenant d’une ancienne installation de Windows : qu’une confirmation UAC s’affiche à chaque création/suppression dans votre répertoire de musique devient vite inbuvable !
Afin de s’octroyer tous les droits sur un emplacement précis, il faut :
- se mettre propriétaire
- créer des droits pour le compte propriétaire
Faire cela via l’explorateur de fichiers est vite rébarbatif, car il faut passer par un dédale de boutons et de menus, parsemés de confirmations UAC. De plus le changement n’est pas récursif. Le mieux est alors de passer en mode geek barbu linuxien, et utiliser directement les outils en ligne de commande : takeown pour devenir propriétaire (à ne pas confondre avec Taekwon), et icacls pour changer les droits. Je ne détaillerai pas l’utilisation exhaustive de ces commandes, mais pour se rendre maître incontesté d’un répertoire et de tous les fichiers qu’il contient, ceci de manière récursive dans tous les sous-répertoires, il suffit d’ouvrir une invite de commande en temps qu’administrateur (Menu démarrer, taper cmd et valider avec Ctrl+Shift+Entrée au lieu de Entrée tout court), se placer dans le répertoire en question grace à la comande cd, puis taper une par une :
takeown /F * /R
icacls * /grant NomDeVotreCompteWindows:F
Si vous n’avez même pas les droits en lecture, alors remplacez l’étoile par le chemin complet du répertoire, entre guillemets. Par exemple :
takeown /F “c:System Volume Information” /R
icacls “c:System Volume Information” /grant NomDeVotreCompteWindows:F
La commande takeown vous demandera si vous souhaitez obtenir les droits sur le répertoire, afin de pouvoir continuer son exécution récursive.
Il est possible d’automatiser cette tâche en créant un script batch (fichier texte avec l’extension .bat) contenant ces deux lignes. Quand on souhaite s’approprier le contenu d’un dossier, il suffit alors de copier ce batch dedans, puis de le lancer en temps qu’administrateur. Simple et efficace.
Publié dans Vista | Taggé: astuce, droits, icacls, takeown, UAC | Aucun commentaire »