Dans certains cas de migration de données d’un poste Windows à l’autre, il peut arriver qu’un dossier et tout ce qu’il contient n’ait plus aucun propriétaire. Il est possible de remettre un propriétaire graphiquement et récursivement, mais dans ce cas, cela n’affecte que les dossiers.
La solution est de tout réaffecter à l’administrateur, et alors seulement de redonner les droits à la bonne personne.
Pour ceci : ouvrir une invite de commandes en administrateur (rechercher cmd
, puis clic droit et “ouvrir en tant qu’administrateur”) et taper
REM L’administrateur devient propriétaire de tous les dossiers, sous-dossiers et fichiers
REM Contrairement à icacls, ceci fonctionne même en l'absence de droits d'écriture/modification
takeown /f “C:\mon\chemin” /r /D o
REM avec /A, on peut donner l'appartenance au groupe "Administrateurs"
REM On peut donner des droits supplémentaires (ici accès complet) à tel utilisateur ou groupe
icacls "C:\mon\chemin" /grant user1:(OI)(CI)F /grant group2:(OI)(CI)F /C /Q
REM (OI) et (CI) mettent en place l'héritage des droits pour les sous-objets et conteneurs
REM Les droits de tous les sous-dossiers et sous-fichiers sont réinitialisés pour hériter de "mon\chemin"
REM Voir ici : https://serverfault.com/questions/475612/replace-permission-entries-on-all-child-objects-using-icacls
REM /q pour supprimer les messages de réussite ; /t pour la recursivité ; /c pour continuer en cas d'erreur sur un élément
icacls "c:\mon\chemin" /inheritancelevel:e /t /q /c
REM Sans cette étape, l'ajout de droits sur un fichier/conteneur qui a été sorti de l'héritage ne semble pas fonctionner
REM L’utilisateur choisi devient propriétaire de la racine et les fichiers/dossiers directement dedans
icacls “C:\mon\chemin” /setowner userProprio /T /L
Note : sous XP, cela devrait être à peu près similaire, mais avec la commande cacls
au lieu de icacls
.