Confidencial de Windows Seguimiento de accesos directos

Raymond Chen

Si mueve el destino de un acceso directo, el shell de Windows intentará buscar la nueva ubicación;Esto se conoce como "resolver"acceso directo. Pero ¿qué algoritmo el shell utiliza para encontrar ese destino?

Siempre respondo: Depende.

Windows 95

Cuando los accesos directos se introdujeron en Windows 95, sistemas de archivos no tiene mucha inteligencia asociado con objeto de seguimiento. El shell de Windows 95 utiliza un sencillo algoritmo de búsqueda para buscar el destino del acceso directo perdido: Cuando se crea un acceso directo, diversas propiedades de destino del acceso directo se registran en el propio archivo de acceso directo, propiedades, como el nombre de archivo, tamaño del archivo, hora de creación y la hora de última modificación, así como información acerca de la unidad que contiene el archivo.

Estas propiedades se actualizan periódicamente cuando se utiliza el acceso directo y cuando falta destino del acceso directo, se inicia el shell buscando un archivo con tantas propiedades como sea posible en común con el archivo de destino. Cuando encuentra un archivo que sea similar de destino original, declara el destino como tener ha encontrado.

Propiedades diferentes tienen importancia distinto, pero la hora de creación tiene el mayor peso, porque dicha propiedad tiende a permanecen unidos a un archivo incluso después de modificar y incluso cambiar el nombre. Túnel de sistema de archivo de ayuda a mantener esta información asociada con el archivo, incluso cuando programas inadvertidamente funcionan de manera que normalmente podría destruir la información.

La búsqueda se inicia en el directorio que la ubicación del archivo última conocidos. Pero incluso encontrar el punto inicial puede tardar un poco de trabajo si ha cambiado la unidad;Por ejemplo, si el destino del acceso directo en una unidad de red asignó a la unidad "O"pero ahora está asignado a la unidad "p".

Después de buscar el directorio de última conocida, la búsqueda se desciende en subdirectorios;a continuación, se expande hacia fuera para el directorio primario y directorios de relacionado;mueve a la entidad primaria principal directorio, sus, tíos y cousins, bastante mucho cada relativa conocido para la humanidad. Si la búsqueda continúa durante dos minutos con no suerte, se abandona el esfuerzo (incluso si no todos los directorios de candidato se han buscado).

La forma de NT

El personal de sistema de archivo de Windows NT se examinó el algoritmo de resolución de acceso directo de Windows 95 y scoffed. " Podemos hacer mejor que el que: Estamos orientado!" Cada objeto NTFS tiene un identificador de objeto;un acceso directo con un destino en un volumen NTFS también registra el identificador de objeto del acceso directo, así como el identificador de objeto de la propia unidad.

Cuando llega el momento para resolver el acceso directo, el shell pide el vínculo seguimiento servicio distribuido para buscar el objeto original. En un dominio, esto puede producir resultados sorprendentes, como buscar el archivo incluso cuando la unidad ha fuera de un equipo y se instala en otro.

Hay un número de formas que los administradores pueden afectar el algoritmo que elige utilizar el shell. Si habilita no no realizar un seguimiento accesos directos al shell durante uso móvil (LinkResolveIgnoreLinkInfo) de directiva, el shell no intentará localizar la unidad original. Si era el destino del acceso directo en una unidad de red, el shell no intentará localizar el recurso de red original al determinar la ubicación inicial de la búsqueda de estilo Windows 95. Sólo asumirá que la letra de unidad es correcta;Si no lo es, bueno, lo que ocurre, ocurre.

Esta directiva se creó para entornos que tienen un grupo de recursos de red idénticas, donde se distribuye la carga por tener un script de inicio de sesión conectar la unidad "O" (por ejemplo) a un servidor diferente según el usuario. Aunque dos usuarios se conectan a dos servidores físicamente distintos, son lógicamente idénticos. Si establece esta directiva, un acceso directo a O:\program.exe ejecutará el programa actualmente en la unidad "O"incluso si la unidad "O"no está conectado al mismo recurso de red como cuando se creó el acceso directo.

También hay un par de directivas que permiten deshabilitar los dos algoritmos de ubicación del objeto una vez determinado el punto de partida: el no utilizar el método basado en seguimiento al resolver shell accesos directos (NoResolveTrack) directiva deshabilita el algoritmo de seguimiento del objeto NTFS decorativo;el no utilizar el método basado en búsqueda al resolver shell accesos directos (NoResolveSearch) directiva deshabilita el algoritmo de búsqueda simple de Windows 95.

Reparar accesos directos rotos es uno de los trabajos de cambio del shell: Personas incluso no darse cuenta de que está confiar en la función hasta que deja de trabajar.

Raymond Chen sitio Web, The Old New Thing de y libro titulado idéntica (Addison-Wesley 2007) tratan con historial de Windows y programación de Win32. A veces, codifica información mediante la traducción en alemán (mal).