Partager via


Vie secrète de Windows Suivi des raccourcis

Raymond Chen

Si la cible d'un raccourci se déplace, le shell Windows va tenter de rechercher le nouvel emplacement ;On parle de «résolution»le raccourci. Mais quel algorithme de l'interpréteur de commandes utilise pour rechercher cette cible ?

Réponse : Il dépend.

Windows 95

Lorsque raccourcis ont été introduites dans Windows 95, systèmes de fichiers n'a pas beaucoup de smarts associée à objet suivi. Le shell Windows 95 utilise un algorithme de recherche simple pour rechercher la destination du raccourci perdues : Lorsqu'un raccourci est créé, différentes propriétés de la cible du raccourci sont enregistrées dans le fichier de raccourci, propriétés, telles que le nom de fichier, taille du fichier, heure de création et l'heure de dernière modification, ainsi qu'informations sur le lecteur contenant le fichier.

Ces propriétés sont mises à jour périodiquement lorsque le raccourci est utilisé, et lorsque la cible du raccourci est manquante, le shell commence la recherche d'un fichier avec autant de propriétés que possible en commun avec le fichier cible. Lorsqu'il trouve un fichier qui est assez similaire à la cible d'origine, il déclare la cible comme ayant été trouvé.

Des propriétés différentes ont différente importance, mais heure de création a le poids plus important, car elle a tendance à rester connecté à un fichier même après que qu'il a été modifié et même renommé. Tunneling de système de fichiers permet de conserver ces informations associées au fichier, même si par inadvertance les programmes fonctionnent de manière cela va détruire normalement les informations.

La recherche démarre dans le répertoire dernier emplacement connu du fichier. Mais même rechercher le point de départ peut prendre un peu de travail si le lecteur a changé ;Par exemple, si la cible du raccourci a été mappée à "O" le lecteur sur un lecteur réseaumais maintenant est mappé sur le lecteur «P.»

Après la recherche dans le répertoire dernière connue, la recherche parcourt en sous-répertoires ;puis se développe vers l'extérieur pour le répertoire parent et des répertoires frère ;puis se déplace vers le répertoire grand-parent, les tantes, les oncles et les cousins — plutôt bien chaque relatif connu de l'humanité. Si la recherche se poursuit pendant deux minutes avec aucune chance, l'effort est abandonnée (même si pas tous les répertoires candidat recherche).

La méthode NT

L'équipe de système de fichiers Windows NT étudié l'algorithme de résolution de raccourci Windows 95 et scoffed. " Nous pouvons faire mieux que cela : Nous sommes orienté objet!» Chaque objet NTFS possède un identificateur d'objet ;un raccourci avec une cible qui se trouve sur un volume NTFS enregistre également l'identificateur d'objet de la cible du raccourci, ainsi que l'identificateur d'objet du lecteur lui-même.

Lorsqu'il est temps de résoudre le raccourci, le shell demande le service de liaisons distribuées suivi pour rechercher l'objet d'origine. Sur un domaine, cela peut produire les résultats surprenant, à trouver le fichier même lorsque le lecteur a été retiré d'un ordinateur et installé dans un autre.

Il existe un certain nombre de façons les administrateurs peuvent affecter l'algorithme de que l'interpréteur de commandes choisit d'utiliser. Si vous activez l'option ne pas rechercher les raccourcis de l'environnement lors de l'exploration (LinkResolveIgnoreLinkInfo) stratégie, le shell essaiera pas à localiser le lecteur d'origine. Si la cible du raccourci se trouve sur un lecteur réseau, l'interpréteur de commandes n'essaie pas de localiser la ressource réseau d'origine lorsque vous déterminez l'emplacement de départ pour la recherche de style de Windows 95. Il suppose simplement que la lettre de lecteur est correcte ;Si ce n'est pas le cas, et bien, que se passe-t-il, qui se produit.

Cette stratégie a été créée pour environnements ayant un pool de ressources réseau identiques, où la charge est répartie en demandant un script de connexion connecter le lecteur "O" (par exemple) à un autre serveur en fonction de l'utilisateur. Même si deux utilisateurs se connectent à deux serveurs physiquement différents, ils sont logiquement identiques. Si vous définissez cette stratégie, un raccourci vers O:\program.exe exécutera le programme actuellement sur le lecteur «O»,même si «O» du lecteurn'est pas connecté à la même ressource réseau en tant que lorsque le raccourci a été créé.

Il existe également une paire de stratégies vous permettent de désactiver les deux algorithmes emplacement de l'objet une fois que le point de départ a été déterminé : la ne pas utiliser la méthode suivi lorsque shell raccourcis (NoResolveTrack) stratégie de résolution désactive l'algorithme de suivi de l'objet fantaisie NTFS ;la ne pas utiliser la méthode de recherche lorsque shell raccourcis (NoResolveSearch) stratégie de résolution désactive l'algorithme de recherche Windows 95 low-tech.

Réparation des raccourcis endommagés fait partie de ces travaux thankless de l'interpréteur de commandes : Personnes n'est pas encore réaliser qu'ils vous reposant sur la fonctionnalité jusqu'à ce que qu'il cesse de fonctionner.

Raymond Chen site Web, The Old New Thing et même intitulé livre (Addison-Wesley 2007) concernent l'historique de Windows et la programmation Win32. Il code parfois des informations à traduire en allemand (mal).