A propos des "Shell-Link" : Valeur de Flags

Le
Lotre
Bonsoir,

En gros :
=
Si dans un répertoire XX
on fabrique un fichier desktop.ini
contenant

[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2

et qu'à côté de ce fichier ini
on ajoute un raccourci nommé target.lnk
qui pointe vers un dossier YYY

alors le shell "redirigera"
les chemins dans XX vers les mêmes dans YYY
(on peut modifier icône et "InfoTip" de XX
en les définissant avec le raccourci target)


C'est moins "chic" qu'avec junction
mais cela marche aussi en fat32 ;o)

J'ai une question :
J'ai mis flags=2
car c'est ce que l'on voit "partout"
mais j'ai fait des tests variés et je n'arrive pas à voir ce qui
change

A quoi sert réellement flags ?

Merci d'avance,

HB
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JF
Le #18712131
*Bonjour Lotre * !

Bonsoir,



En gros :
============================== > Si dans un répertoire XX
on fabrique un fichier desktop.ini
contenant
------------------------
[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2
------------------------
et qu'à côté de ce fichier ini
on ajoute un raccourci nommé target.lnk
qui pointe vers un dossier YYY



alors le shell "redirigera"
les chemins dans XX vers les mêmes dans YYY
(on peut modifier icône et "InfoTip" de XX
en les définissant avec le raccourci target)
===================================
C'est moins "chic" qu'avec junction
mais cela marche aussi en fat32 ;o)



C'est en effet moins chic que junction qui travaille au niveau du NTFS.
En fait on transforme un dossier en raccourci en travaillant au niveau
du Shell, et seul Explorer tient compte du Desktop.ini

Le dossier utilisé (répertoire XX) peut contenir ses propres fichiers,
auxquels on accèdera par d'autres moyens (il sont normalement
impossibles à afficher dans Explorer). Ne pas oublier de mettre
l'attribut System au dossier XX qui contient le Desktop.ini avec la
commande attrib. Sinon ça ne marche pas.

Méthode explicitée par Gilles RONSIN
http://gilles.ronsin.free.fr/#targetlnk
Son script est sensé faciliter l'opération
http://gilles.ronsin.free.fr/fichiers/targetlnk.vbs

En images :
http://www.johnlandells.com/reparsing-folders-in-xp

Clé du Registre :
HKLMSOFTWAREClassesCLSID{0AFACED1-E828-11D1-9187-B532F1E9575D}
http://www.google.fr/search?q
FACED1-E828-11D1-9187-B532F1E9575D

Comparaison avec les Junctions
Differences between Shell links and Junctions
http://www.pearlmagik.com/winbolic/






J'ai une question :
J'ai mis flags=2
car c'est ce que l'on voit "partout"



C'est ce qu'on voit partout,
en particulier dans le livre
"Windows XP Annoyances"
http://books.google.fr/books?id=_b_qehqBitUC
http://books.google.fr/books?id=_b_qehqBitUC&pg=PR5

Mirror a Folder with Folder Shortcuts
http://books.google.fr/books?id=_b_qehqBitUC&pg=PA176



mais j'ai fait des tests variés et je n'arrive pas à voir ce qui change ...
A quoi sert réellement flags ?



C'est une excellente question ! Dont je ne connais pas la réponse
http://msdn.microsoft.com/en-us/library/cc144102(VS.85).aspx
http://www.siteduzero.com/tutoriel-3-34756-personnaliser-ses-dossiers-avec-les-desktop-ini.html

--
Salutations, Jean-François
http://fspsa.free.fr/Index-de-la-FAQ-WINXP-de-Panthere-Noire.htm
http://fspsa.free.fr/Capture-Ecran-et-Publication-vers-Newsgroups.htm
http://fspsa.free.fr/Virus-Malwares-Comment-on-se-fait-infecter.htm
Paulchen
Le #18713171
Salut à tous,

Je reprends au vol, même si le sujet change un peu.

J'ai posé la question il y a quelque temps.
Je n'ai eu aucune réponse compréhensible.

On m'a dit aussi, "junction travaille au niveau NTFS"
Jusque-là, ça va.

Mais j'ai demandé avec quelles références.
J'aurais compris si on m'avait répondu "comme celles de boot.ini",
références absolues des volumes.

Aussi bien JCB que Marc Russinovitch ne font pas le distingo !
Ils parlent de lettres de volumes !
Je suppose qu'ils ne sont pas en multiboot...

Pour illustrer, mettons qu'un répertoire R soit pointé vers X:yyy
dans un OS.

Sur un autre OS, en multiboot, le volume qui s'appelait X: s'appelle P:

- La junction va-t-elle encore exister ?
(elle devrait si c'est une notion NTFS et non une notion OS)
- Va-t-elle pointer vers P:nnn ? en conservant la redirection physique
(ce serait le cas avec des références absolues de volumes)
- Ou va-t-elle pointer vers le répertoire (lettre X: du nouvel OS)yyy
(s'il existe) ?
(alors là, ce serait la cata, ce serait n'importe quoi, sauf si on
maîtrise)
Et pour maîtriser, il faudrait connaître la réponse à ma question...
--
Paulchen
Jean-Claude BELLAMY
Le #18713671
"Paulchen" news:%

On m'a dit aussi, "junction travaille au niveau NTFS"
Jusque-là, ça va.


La définition d'une jonction se fait par un attribut (au même titre que
ReadOnly, Hidden , System, ...)

Pour la culture géénrale de chacun, je récapitule ci-dessous les différents
attributs possibles :
R : readonly (lecture seule, pour empêcher une suppression
accidentelle par la commande "del", ou une modification
par un logiciel quelconque)
Valeur = 0x00000001
H : hidden (caché, sert à masquer l'affichage du fichier ou
dossier avec les outils standards tels que la commande
"dir" sans commutateurs)
Valeur = 0x00000002
S : system (attribut permettant des filtrages supplémentaires,
destiné a priori aux fichiers principaux du système
d'exploitation)
Valeur = 0x00000004
V : volume (attribut réservé à l'entrée du répertoire racine
contenant le nom de la partition)
NB: cet attribut sert aussi dans les FAT32 pour les noms
longs de fichiers
Valeur = 0x00000008
D : Directory (attribut réservé à tout répertoire)
Valeur = 0x00000010
A : Archive (attribut activé quand un fichier ou dossier a été
créé ou modifié. Il est effacé par les logiciels de backup)
Valeur = 0x00000020

Et dans le cas de partitions NTFS, d'autres attributs sont apparus :
D : device
Valeur = 0x00000040
T : temporary
Valeur = 0x00000100
S : sparse file (fichier clairsemé)
Valeur = 0x00000200
L : Link (lien ou alias ou Junction)
Valeur = 0x00000400
C : compressed (compressé, mutuellement exclusif
avec l'attribut chiffré)
Valeur = 0x00000800
O : offline (données sur un disque virtuel, créé
à partir de bandes magnétiques p.ex.)
Valeur = 0x00001000
E : encrypted (chiffré, mutuellement exclusif
avec l'attribut compressé)
Valeur = 0x00004000
W : fichier virtuel
Valeur = 0x00010000

Donc un fichier ou dossier "Junction" (donc pointant vers un autre) possède
l'attribut L, de valeur 0x00000400.
Cela se situe quelque part dans la MFT de la partition
Le contenu du fichier junction est "l'adresse" du fichier pointé

Mais j'ai demandé avec quelles références.
J'aurais compris si on m'avait répondu "comme celles de boot.ini",
références absolues des volumes.

Aussi bien JCB que Marc Russinovitch ne font pas le distingo !
Ils parlent de lettres de volumes !


Uniquement parce que c'est plus simple à manipuler !
Mais le "vrai" nom d'une partition, c'est TOUJOURS un truc du style
"??Volume{5ae4cd7d-e348-11db-ac05-001a92475f7f}" , étant donné que la
lettre qui lui est éventuellement attribuée n'est qu'un artifice qui
facilite l'écriture, le lien entre les deux étant stocké dans
HKLMSYSTEMMountedDevices.

C'est analogue aux noms de comptes !
Il y a des comptes "HOMER", "MARGE", ... sur ma babasse, mais là-aussi ce
n'est qu'un artifice pour faciliter leur manipulation, car dans la réalité,
ces comptes s'appellent "S-1-5-21-2669534503-2577457900-2246712930-1011",
"S-1-5-21-2669534503-2577457900-2246712930-1003", ...

Je suppose qu'ils ne sont pas en multiboot...


Dans le cas précis, non, mais je suis en réseau, et là çà revient au même !

Pour illustrer, mettons qu'un répertoire R soit pointé vers X:yyy
dans un OS.
Sur un autre OS, en multiboot, le volume qui s'appelait X: s'appelle P:
- La junction va-t-elle encore exister ?


OUI
(elle devrait si c'est une notion NTFS et non une notion OS)


Farpaitement ! ;-)

- Va-t-elle pointer vers P:nnn ? en conservant la redirection physique
(ce serait le cas avec des références absolues de volumes)


OUI
- Ou va-t-elle pointer vers le répertoire (lettre X: du nouvel OS)yyy
(s'il existe) ?
(alors là, ce serait la cata, ce serait n'importe quoi, sauf si on
maîtrise)


NON
Et pour maîtriser, il faudrait connaître la réponse à ma question...



Il suffit d'EXPÉRIMENTER !!!!
Moi quand j'ai un doute, et que je ne trouve pas de réponse claire et nette,
je fais une manip !
Et je regarde ce qu'il se passe !


Sur ma machine "POUDENAS", j'ai créé une jonction "C:Delphi", qui pointe
vers l'arborescence "K:Delphi"
("C:Delphi" est donc un alias, et "K:Delphi" est le VRAI dossier physique)
"C:" est partagé sous le nom de "C"

Je viens de passer sur une autre babasse "GRANDBASSAM", et j'y ai ouvert le
voisinage réseau dans l'explorateur.
Je vois l'ordinateur "POUDENAS", avec son partage "C"
Je clique dessus, et parmi les répertoires de la racine, j'en vois un qui
s'appelle "C:Delphi"
Je clique dessus, et cela m'affiche TOUS les dossiers et fichiers présents
sur la partition K: dans le dossier "Delphi".
http://www.cijoint.fr/cj200902/cijqGOD6n1.jpg
(et bien sûr, l'accès aux dossiers et fichiers se fait sans problème)

C'est donc bien la preuve que le système de fichiers NTFS et ensuite la
redirection de fichiers et dossiers par le réseau se contrefichent des
lettres de partitions, mais uniquement des ID !
(et heureusement !)

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Paulchen
Le #18715191
Enfin une réponse claire, et une mise au point pédagogique.
Un grand merci, Jean-Claude.

Pendant la nuit, je m'apprétais à reformuler ma question
sur un nouveau fil, en la complétant.
Tu y as partiellement répondu, je me borne à ceci seulement :

Dans un système mono-OS, pour simplifier :

Quid des droits et propriétaires des deux répertoires respectifs ?
Celui qui est redirigé et la cible gardent-ils chacun leurs droits
d'origine
ou bien la junction change-t-elle quelque chose à l'un ou à l'autre ?
(excuse si je dis junction et non jonction, c'est par référence à la
fonction)

Je suppose que la junction n'est qu'une redirection vers une cible,
qui garde ses attributs. Sinon, la sécurité en prendrait un sérieux
coup.
Le répertoire redirigé garde-t-il ses droits ou emprunte-t-il ceux de la
cible ?

Si je change la lettre de la partition cible, j'ai compris de ta réponse
que la junction va être conservée et "suivre" le changement de lettre.
Idem si je supprime la lettre de la partition.
(D'abord, est-ce possible de changer ou supprimer la lettre d'une
partition
qui contient une cible de junction ?)
Même supposition avec une partition du répertoire cible
cachée par la clé HKLMSYSTEMMountedDevices (ça, c'est propre à l'OS).

Cela permettrait d'accéder à des répertoires d'une partition
cachée ou sans lettre ! Ce n'est pas banal.

Pourrais-tu confirmer STP. Merci.

Peut-on créer une junction vers une cible "réseau" \ordinateuretc... ?

Que se passe-t-il si on démonte (physiquement) le disque cible ?
Je suppose que la junction demeure et que l'explorateur demande
"insérer etc..." en cas de besoin ?
--
Paulchen

"Jean-Claude BELLAMY" message de news:

Mais le "vrai" nom d'une partition, c'est TOUJOURS un truc du style
"??Volume{5ae4cd7d-e348-11db-ac05-001a92475f7f}" , étant donné que
la lettre qui lui est éventuellement attribuée n'est qu'un artifice
qui facilite l'écriture, le lien entre les deux étant stocké dans
HKLMSYSTEMMountedDevices.



C'est donc bien la preuve que le système de fichiers NTFS et ensuite
la redirection de fichiers et dossiers par le réseau se contrefichent
des lettres de partitions, mais uniquement des ID !
(et heureusement !)

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org



Lotre
Le #18721981
JF wrote:
*Bonjour Lotre * !


(...)

Ne pas oublier de mettre
l'attribut System au dossier XX qui contient le Desktop.ini


> avec la commande attrib. Sinon ça ne marche pas.

J'ai l'impression que comme flags=2
celà relève de la légende
Je n'ai pas noté de différence lorsque le dossier XX
n'est pas "system"

(...)
A quoi sert réellement flags ?



C'est une excellente question !
Dont je ne connais pas la réponse



et aucun lien (cité ou trouvé ailleurs) ne lève le voile ....

Miss Terre

HB
testeur
Le #18722631
Un excellent outil en extension de l'explorer pour gérer les points de
montage, hardlinks et jonctions :

http://schinagl.priv.at/nt/hardlinkshellext/HardlinkShellExt.exe
( mis à jour le 4 février, supporte W2K, XP et Vista)

Olivier
JF
Le #18724491
*Bonjour testeur * !

Un excellent outil en extension de l'explorer pour gérer les points de
montage, hardlinks et jonctions :
http://schinagl.priv.at/nt/hardlinkshellext/HardlinkShellExt.exe
( mis à jour le 4 février, supporte W2K, XP et Vista)



C'est dommage de passer à côté des explications
http://schinagl.priv.at/
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

"Outil à réserver à des utilisateurs avertis."
http://www.gratilog.net/xoops/modules/mydownloads/singlefile.php?lid77

C'est vrai que ça devient tellement facile, on doit faire des noeuds..

--
Salutations, Jean-François.
Paulchen
Le #18724841
Merci à testeur pour l'info et à JF pour les liens complémentaires.
--
Paulchen

"testeur" news:
Un excellent outil en extension de l'explorer pour gérer les points de
montage, hardlinks et jonctions :

http://schinagl.priv.at/nt/hardlinkshellext/HardlinkShellExt.exe
( mis à jour le 4 février, supporte W2K, XP et Vista)

Olivier



testeur
Le #18725401
- J'ai pour habitude de toujours télécharger les logiciels sur le site de
l'éditeur pour éviter les mauvaises surprises (voir fil plus bas Easeus
partition manager)
- Je n'avais pas cité le lien sur les infos, car la doc est installée avec
le produit et est très complète.

Olivier
Publicité
Poster une réponse
Anonyme