Share via


Suivi des liens distribués et identificateurs d’objet

Le stockage d’une référence à un fichier ou à un répertoire à l’aide de son chemin d’accès et de son nom de fichier n’est pas fiable. Si un utilisateur renomme un fichier, il interrompt les liens vers le fichier. Si un utilisateur renomme le répertoire, il interrompt les liens vers le fichier et tous les fichiers et sous-répertoires de l’arborescence des répertoires.

Le service de suivi des liens distribués permet aux applications clientes de suivre les sources de liens qui ont été déplacées. Les clients qui s’abonnent au service de suivi des liens peuvent maintenir l’intégrité de leurs références et les objets peuvent être suivis de manière transparente pour l’utilisateur.

Identificateurs d'objet

Le service de suivi des liens conserve son lien vers un objet à l’aide d’un identificateur d’objet (ID). Un ID d’objet est un attribut facultatif qui identifie de manière unique un fichier ou un répertoire sur un volume.

Un index de tous les ID d’objet est stocké sur le volume. Les opérations de renommage, de sauvegarde et de restauration préservent les ID d’objet. Toutefois, les opérations de copie ne préservent pas les ID d’objet, car cela violerait leur unicité.

Vous pouvez effectuer les opérations suivantes sur les ID d’objet :

  • Création
  • Suppression
  • Requête

Lorsque vous créez un ID d’objet, vous établissez l’identité du fichier auprès du service de suivi des liens. À l’inverse, lorsque vous supprimez un ID d’objet, le service de suivi des liens cesse de maintenir les liens vers le fichier. Pour obtenir la liste des codes de contrôle du système de fichiers qui effectuent des opérations sur les ID d’objet, consultez Codes de contrôle de gestion des fichiers.

Le service de suivi des liens distribués suit les sources de liens pour les raccourcis de l’interpréteur de commandes et les liens OLE dans les volumes du système de fichiers NTFS. Le client de lien peut corriger un lien rompu avec des informations mises à jour sur le nouvel emplacement de la source de lien.

Les raccourcis de l’interpréteur de commandes incluent le suivi des liens heuristique qui utilise un algorithme de recherche d’arborescence pour trouver une correspondance pour une source de lien déplacée. L’algorithme de recherche est basé sur le dernier chemin connu du fichier et des informations de fichier qui incluent la date de création, la taille du fichier, ainsi que le nom et l’extension du fichier.

La liaison OLE inclut le même suivi heuristique des liens. Windows inclut également le même suivi heuristique des liens avec des améliorations supplémentaires pour la recherche d’espaces de noms afin d’obtenir des résultats dans certains scénarios courants. Les améliorations incluent la procédure suivante qui dépend des limites de temps imposées par une application cliente.

Pour rechercher des espaces de nom

  1. Recherchez quatre niveaux de répertoire à partir du dernier répertoire.
  2. Déplacez un répertoire vers le haut et répétez les étapes 1 et 2 à trois reprises, ce qui peut produire des résultats si l’objet a été déplacé à proximité.
  3. Recherchez quatre niveaux vers le bas à partir de la racine du bureau, ce qui peut produire des résultats si l’objet a été déplacé vers un emplacement sur le même bureau.
  4. Recherchez quatre niveaux à partir de la racine sur chaque lecteur fixe local.
  5. Répétez les étapes 1 à 3 sans la limite de quatre répertoires.

Notes

Ces schémas de suivi des liens sont transparents pour l’utilisateur final. Toutefois, ils ne produisent pas toujours des résultats positifs et peuvent prendre du temps.

 

Pour plus d’informations sur les raccourcis de l’interpréteur de commandes, consultez IShellLink.

Pour plus d’informations sur les liens OLE, consultez IOleLink.

Si un lien est établi vers un fichier sur NTFS 3.0 ou version ultérieure et que le fichier est déplacé vers tout autre volume avec NTFS 3.0 ou version ultérieure dans le même domaine, le fichier peut être trouvé par le service de suivi, sous réserve de considérations de temps. En outre, si le fichier est déplacé en dehors du domaine ou dans un groupe de travail, il est trouvé.

Pour obtenir la version NTFS d’un volume, ouvrez une invite de commandes avec des droits d’accès administrateur et exécutez la commande suivante :

fsutil fsinfo ntfsinfoX:

X est la lettre de lecteur du volume.

Lorsqu’un lien est créé vers un fichier, le fichier cible est considéré comme la source du lien et le créateur du lien est le client de lien. Par exemple, si un raccourci d’interpréteur de commandes est créé pour établir un lien vers un document texte, le document texte est la source du lien et le raccourci de l’interpréteur de commandes est le client de lien.

Le service de suivi des liens distribués gère les liens de fichiers pour les situations suivantes qui se produisent dans un domaine :

  • Le fichier source de lien est déplacé d’un volume de système de fichiers NTFS vers un autre dans le même domaine.
  • Le nom de l’ordinateur qui contient la source de lien est renommé.
  • Les partages réseau sur l’ordinateur source de lien sont modifiés.
  • Le volume qui contient le fichier source de liaison est déplacé vers un autre ordinateur du même domaine.

Le service de suivi des liens distribués tente également de maintenir les liens dans les situations précédentes, même lorsqu’ils ne se produisent pas dans un domaine, c’est-à-dire qu’ils sont inter-domaines ou dans un groupe de travail. Les liens peuvent toujours être conservés dans ces situations lorsque le partage réseau sur l’ordinateur source de lien est modifié. Ils peuvent également être gérés lorsqu’une source de lien est déplacée dans un ordinateur. Les liens peuvent généralement être conservés lorsque la source de lien est déplacée vers un autre ordinateur, mais cette forme de suivi est moins fiable au fil du temps.

La fonctionnalité de suivi des liens est principalement implémentée sous la forme des deux services système suivants :

  • Client de suivi de liaisons distribuées
  • Serveur de suivi des liens distribués

Client de suivi des liens distribués

Le client de suivi des liens distribués s’exécute sur tous les ordinateurs et gère les activités de suivi des liens pour cet ordinateur. Ces activités incluent la recherche de sources de liens et le traitement des déplacements des sources de lien. Lorsqu’une source de lien est déplacée, le service transmet des informations au serveur de suivi de liens distribué qui s’exécute sur les contrôleurs de domaine.

Serveur de suivi des liens distribués

Le serveur de suivi des liens distribués s’exécute sur chaque contrôleur de domaine d’un domaine. Le service accepte les notifications de déplacement de fichiers et de volumes à partir du service de suivi sur un ordinateur, et permet au client de suivi des liens distribués d’interroger l’emplacement actuel d’une source de lien.

Ce service serveur conserve des informations dans les contrôleurs de domaine sur les volumes et les fichiers qui ont été déplacés. Les informations sur les déplacements ne peuvent pas augmenter au-delà d’une taille spécifique, et elles sont automatiquement supprimées si elles deviennent inutiles.

Les services de suivi des liens sont exposés par les interfaces IShellLink et IOleLink . Par conséquent, ils sont utilisés par les raccourcis de l’interpréteur de commandes. Lorsque la méthode IShellLink::Resolve est appelée et que le fichier de référence est introuvable, par exemple, lorsque l’utilisateur active un raccourci d’interpréteur de commandes, le service de suivi est appelé automatiquement pour rechercher le fichier. De même, lorsque l’implémentation IOleLink ne trouve pas de fichier, par exemple, dans sa méthode BindToSource , elle appelle automatiquement le service de suivi.

Les services de suivi de liens distribués sont disponibles uniquement sur le système de fichiers NTFS et sont uniquement disponibles pour les sources de liens sur NTFS 3.0 ou version ultérieure. Par conséquent, si une source de lien est déplacée vers un volume de système de fichiers FAT, les informations de suivi sont perdues. En outre, si une source de lien est déplacée entre NTFS 3.0 ou version ultérieure, mais que l’ordinateur qui effectue le déplacement exécute une version antérieure de Windows, les informations de suivi des liens sont perdues. Lorsque les informations de suivi des liens sont perdues, aucun préjudice n’est causé au fichier source de lien lui-même. Il n’est tout simplement pas possible de les suivre par les services de suivi des liens distribués.

Pour obtenir la version NTFS d’un volume, ouvrez une invite de commandes avec des droits d’accès administrateur et exécutez la commande suivante :

fsutil fsinfo ntfsinfoX:

X est la lettre de lecteur du volume.

Les liens vers des fichiers sur un support amovible ne sont pas conservés. En outre, le service de suivi ne reconnaît pas un nouveau volume de système de fichiers NTFS tant que le système n’est pas redémarré. Un nouveau volume peut devenir disponible en raison du re partitionnement, du reformatage d’un volume de système de fichiers FAT au système de fichiers NTFS ou de la connexion d’un nouveau lecteur externe.