Retour aux Liens NTFS
Retour à Robocopy
On a vu dans l'article sur les Liens NTFS que depuis Vista le système comprend quelques Liens NTFS récursifs, qui pointent vers leurs conteneurs. Si on enlève volontairement ou non les protections qui en interdisent l'accès, on obtient des effets de dossiers imbriqués, notés selon l'humeur et la culture de l'observateur comme effet boule de neige, poupées russes, vache qui rit....
On va voir différentes façons de produire ces phénomènes, et comment se rétablir :
Un dossier est créé, puis dans celui-ci, on crée un Lien Symbolique absolu
pointant vers le dossier conteneur du lien.
La manip est acceptée. On peut se déplacer dans le dossier avec la commande CD.
On observe ensuite l'arborescence avec une commande DIR /S
La commande renonce quand la limite de 260 caractères est atteinte.
La commande RD /S a permis de supprimer le dossier.
L'encadré ci-dessous fait 2443 pixels de large, afficher en pleine page pour une
meilleure lecture (F11).
U:\>md dossier U:\>mklink /D dossier\link-de-dossier u:\dossier Lien symbolique créé pour dossier\link-de-dossier <<===>> u:\dossier U:\>cd dossier U:\dossier>dir Le volume dans le lecteur U s'appelle U Le numéro de série du volume est 2875-D467 Répertoire de U:\dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets 3 Rép(s) 113 725 440 octets libres U:\dossier>dir /S Le volume dans le lecteur U s'appelle U Le numéro de série du volume est 2875-D467 Répertoire de U:\dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [u:\dossier] 0 fichier(s) 0 octets Répertoire de U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier 04/10/2009 06:21 <REP> . 04/10/2009 06:21 <REP> .. 04/10/2009 06:21 <SYMLINKD> link-de-dossier [.] 0 fichier(s) 0 octets Le nom de répertoire U:\dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier\link-de-dossier est trop long. Total des fichiers listés : 0 fichier(s) 0 octets 48 Rép(s) 113 725 440 octets libres U:\dossier>cd.. U:\>rd dossier /S /Q U:\> |
On vient de voir ce qui se passe quand on explore avec la commande DIR un dossier comportant une Jonction récursive.
Les Jonctions récursives qui posent souvent problèmes aux utilisateurs sont
celles concernant "Application Data".
Recherche des jonctions concernant
Application Data (présentation du résultat de la commande manuellement expurgée
des éléments inutiles) :
C:\>dir "application
data" /AL /S |
Repérées par *** sont les jonctions récursives :
C:\ProgramData\Application Data C:\Users\All Users\Application Data C:\Users\Default\Application Data C:\Users\Default\AppData\Local\Application Data C:\Users\JF\Application Data C:\Users\JF\AppData\Local\Application Data |
[C:\ProgramData]
*** [C:\ProgramData] [C:\Users\Default\AppData\Roaming] [C:\Users\Default\AppData\Local] *** [C:\Users\JF\AppData\Roaming] [C:\Users\JF\AppData\Local] *** |
De cette situation on peut prédire des surprises lorsque des utilisateurs aventureux feront sauter la protection de la Jonction (sujet abordé à la section suivante), ou, ce qui nous intéresse ici, quand des sauvegardes seront effectuées sans tenir compte de la présence de Jonctions (anciens logiciels de sauvegarde, utilisation de commandes de copie sans exclusion des jonctions).
L'exercice suivant va montrer l'effet de la copie d'un dossier comme ProgramData
qui comporte une Jonction "Application Data" pointant sur son conteneur.
On reproduit pour l'expérience cette structure sur une clé USB formatée NTFS. On
aurait pu choisir la véritable source c:\ProgramData
La copie du dossier est effectuée avec
Robocopy. On oublie volontairement
d'utiliser le commutateur /XJ (eXclure Jonctions)
Le commutateur /E permet de copier toute la structure, c'est-à-dire tous les
dossiers, même les dossiers vides.
Le résultat est que robocopy tente bien de copier la Jonction : mais pas en tant
que lien, il tente de copier son contenu.
Robocopy voit donc sans arrêt un sous-dossier Application Data à copier. Il va
s'exténuer ainsi à la tâche jusqu'à blocage.
En copiant l'affichage de la console
dans Bloc-Notes on peut facilement relever
la colonne du curseur dans le texte.
On détermine ainsi que robocopy a rendu les armes lorsque le chemin a atteint
558 caractères.
Après un message "Analyse du répertoire source ... Le nom du fichier ne peut pas
être résolu par le système. Attente de 30 secondes..." robocopy se met en devoir
de faire un million d'essais espacés de 30 secondes (ce sont les valeurs par
défaut quand on ne précise pas les commutateurs /R:nn et /W:nn).
Il faut alors mettre fin à l'opération en appuyant sur CTL+C.
Les opérations suivantes consistent à tenter de supprimer le dossier créé par la
copie.
Les premiers essais sont des échecs. Il a fallu avancer dans l'arborescence des
dossiers puis utiliser l'artifice de la commande subst.
L'encadré précédent faisait 2443 pixels de large, celui-ci fait 5000 pixels !
B:\>md ProgramData B:\>mklink /J "ProgramData\Application Data" B:\ProgramData Jonction créée pour ProgramData\Application Data <<===>> B:\ProgramData B:\>robocopy programdata cible\ /E ------------------------------------------------------------------------------- ROBOCOPY :: Copie de fichiers robuste pour Windows ------------------------------------------------------------------------------- Début : Tue Oct 06 12:24:10 2009 Source : B:\programdata\ Dest : B:\cible\ Fichiers : *.* Options : *.* /S /E /COPY:DAT /R:1000000 /W:30 ------------------------------------------------------------------------------- Nouveau rép. 0 B:\programdata\ Nouveau rép. 0 B:\programdata\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Nouveau rép. 0 B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ 2009/10/06 12:24:11 ERREUR 1921 (0x00000781) Analyse du répertoire source B:\programdata\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ Le nom du fichier ne peut pas être résolu par le système. Attente de 30 secondes...^C B:\>REM UTILISATION DE CTL+C (noté ^C dans la console) permet de stopper robocopy (rappel : par défaut il fait un million d'essais espacés de 30 secondes) B:\>REM TENTATIVE DE SUPPRESSION DU DOSSIER CIBLE (échec) B:\>rd /S /Q cible cible\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1 - Le chemin d'accès spécifié est introuvable. B:\>cd cible B:\cible>rd /S /Q "Application Data" Application Data\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1 - Le répertoire n'est pas vide. B:\>REM EN UTILISANT LA TOUCHE TABULATION IL EST FACILE D'ALLER PLUS LOIN DANS L'ARBORESCENCE : B:\cible>cd "Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data" Nom de fichier ou extension trop long. B:\cible>cd "Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data" B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>rd /S /Q "Application Data" Application Data\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1 - Le chemin d'accès spécifié est introuvable. B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>cd "Application Data\Application Data\Application Data" Nom de fichier ou extension trop long. B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>rd /S /Q "Application Data" Application Data\APPLIC~1\APPLIC~1\APPLIC~1\APPLIC~1 - Le chemin d'accès spécifié est introuvable. B:\>REM LE CHEMIN RESTANT EST ASSEZ COURT POUR TENTER UNE SUBSTITUTION EN MONTANT UN LECTEUR B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>subst x: "Application Data" B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>x: B.\>REM DANS CE LECTEUR X LE CHEMIN EST DEVENU ACCESSIBLE, ON PEUT SUPPRIMER LA FIN DE L'ARBORESCENCE X:\>rd /S /Q "Application Data" X:\>b: B:\cible\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data>cd\ B:\>rd /S /Q cible B:\>subst x: /D B:\> |
Voici une vue dans l'explorateur de fichiers avec les dossiers B:\cible\Application Data\Application Data\Application Data\... créés par la copie de la Jonction récursive :
On se rappellera donc qu'un Lien NTFS est sensé représenter le dossier qu'il pointe et que par conséquent, contrairement aux raccourcis habituels, ce n'est pas le lien qui est traité mais bien la cible du lien. Il faut vérifier les comportements des logiciels et des commandes selon ce qu'on veut obtenir.
Des commutateurs peuvent être utilisés, soit pour désigner le Lien NTFS plutôt que sa cible (/L avec attrib, icacls, /B avec xcopy ...), soit pour ignorer les Lien NTFS (/XJ avec robocopy).
On est sensé avoir connaissance de l'article Liens NTFS avant de lire cette section.
ACE =
Access Control Entry
ACL =
Access Control List
La Jonction c:\ProgramData\Application Data a pour cible son conteneur
ProgramData.
Une interdiction d'accès au groupe "Tout le monde" protège l'utilisateur contre l'effet poupées russes.
la petite démo suivante consiste à remplacer l'interdiction d'accès au groupe "Tout le monde"
par une autorisation.
On sauvegarde auparavant la liste de contrôle d'accès de la Jonction Application
Data dans le fichier acl (avec /save /T). On aurait pu appeler ce fichier
acl.txt car il est lisible dans Bloc-Notes. Toutefois il n'a pas tout-à-fait la
structure d'un fichier texte, et il ne faut pas le modifier avec Bloc-Notes.
C'est pour cela que la commande "type acl" ci-dessous n'affiche pas le premier
caractère :
C:\Windows\system32>cd\ C:\>cd ProgramData
C:\ProgramData>dir /AL app* |
Résultat de l'opération :
Pour réparer on restaure les ACE (Access Control Entries) précédemment sauvegardées dans le fichier acl :
C:\ProgramData>icacls "Application Data" /restore acl fichier traité : Application Data\Application Data 1 fichiers correctement traités ; échec du traitement de 0 fichiers C:\ProgramData> |
Le fonctionnement normal est retrouvé :
Certains utilisateurs sont tentés de lever l'interdiction d'accès au groupe "Tout le monde" en utilisant l'Onglet Sécurité présent dans les Propriétés de "Application Data". Ils découvrent par la suite l'effet poupées russes. Pour réparer, utiliser à nouveau l'onglet sécurité pour interdire l'accès au groupe "Tout le monde". On peut aussi procéder en lignes de commandes en s'inspirant de la section Réparation d'une jonction :
icacls "c:\programdata\application data"
/DENY "tout le monde":(RD) /L
attrib /L "c:\programdata\application
data" +H +I
icacls "%userprofile%\AppData\Local\Application Data"
/DENY "tout le monde":(RD) /L
attrib /L
"%userprofile%\AppData\Local\Application Data" +i
%userprofile%
est une variable d'environnement représentant le profil de
l'utilisateur en cours.
Entrer la commande SET dans une console CMD pour
afficher les variables d'environnement, on y apprend beaucoup.
Faire la même
chose dans une machine XP et
comparer les résultats avec les valeurs obtenues dans une machine Vista ou
WIN7.
Remarque
On peut utiliser le
SID du groupe "Tout le monde", ça évite les problèmes de traduction (Everyone) :
icacls "%homedrive%\documents and settings" /DENY "*S-1-1-0":(RD) /L
Cadenas
Retour aux Liens NTFS
Retour à Robocopy
Merci d'avoir lu jusqu'ici !
Retour au début
Les restes du site
JF
(Jean-François)
Publié le 04/04/2009