Comment surmonter le & # 8220; Le lien symbolique ne peut pas être suivi car son type est désactivé. & # 8221; erreur lors de l'obtention de la cible d'un lien symbolique?
-
04-07-2019 - |
Question
Suite à un question précédente , je crée un lien symbolique sur un serveur 2008 à partir d'un ordinateur Vista utilisant des chemins d'accès UNC. Je peux très bien créer le lien. Je peux accéder à la boîte Server 2008 et double-cliquer sur le lien dans l'explorateur pour ouvrir le fichier cible. Ce que je ne peux pas faire, c'est utiliser FileCreateW pour obtenir un descripteur du lien de chemin UNC (à partir de la boîte Vista). Lorsque je l'essaie, il échoue et GetLastError () renvoie le code d'erreur 1463 (0x5B7), qui est:
Le lien symbolique ne peut pas être suivi car son type est désactivé.
Comment activer son "type" " dans Server 2008 (en supposant que l'erreur signifie ce qu'elle dit)?
La solution
Pour ajouter à la réponse utile de @David Arno , basée sur W7:
fsutil.exe
peut être utilisé pour montrer quels arguments il faut en exécutant simplement:
fsutil behavior set /?
Pour signaler la configuration actuelle , exécutez la requête de comportement fsutil SymlinkEvaluation
- voir @ @ Jake1164 , en particulier en ce qui concerne la manière dont une stratégie de groupe peut contrôler le comportement.
Le comportement de résolution des liens symboliques est défini sur la machine qui accède à un lien donné , et non à la machine qui l'héberge.
Les codes de comportement du ensemble de comportements fsutil SymlinkEvaluation
, à savoir L2L
, L2R
, R2L
et R2R
- signifient ce qui suit:
-
L
signifie "Local", etR
le mot "Remote". (qui aurait thunk?) - Le FIRST
L
ouR
- avant le2
- fait référence à l'emplacement du lien lui-même ( par opposition à sa cible) par rapport à la machine ACCÉDANT au lien . - La SECONDE
L
ouR
- après le2
- fait référence à l'emplacement du du lien. > cible par rapport à la machine sur laquelle se trouve le LINK .
Ainsi, par exemple, l’exécution de comportement défini par fsutil SymlinkEvaluation R2L
signifie que vous pouvez accéder aux liens:
- situé sur une machine distante (
R
) - qui pointe vers des cibles sur la même machine distante (
L
)
Contrairement à ce que David a connu sur Vista, sur W7, j'ai pu résoudre un lien distant pointant vers une ressource située sur un autre ordinateur distant en activant R2R seul (sans avoir à activer R2L également).
Autres conseils
Bien, j'ai trouvé la réponse, bien que le décrire comme mal documenté soit un euphémisme!
Tout d'abord, cet article de TechEd souligne le fait que les utilisateurs pouvez "activer ou désactiver l’une des quatre évaluations disponibles sous forme de liens symboliques". Ces quatre "évaluations" " incluez remote to local et local to remote. Cela ne donne aucune idée sur la façon de procéder.
Toutefois, une recherche supplémentaire a révélé cette page d'aide fsutil , qui explique en détail comment " ; activer ou désactiver l’une des quatre évaluations disponibles dans les liens symboliques ". Donc, pour résoudre le problème que je rencontrais, je dois exécuter la commande suivante sur la machine Vista ??b>:
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
afin de permettre un accès complet aux endroits où les liens symboliques pointent sur des machines locales et distantes.
Je l’ai récemment trouvé sur toutes les machines Windows 7 de mon entreprise lorsque l’un de mes anciens programmes a cessé de fonctionner. Après quelques recherches et la recherche de ces paramètres, j’ai essayé de les paramétrer via la ligne de commande et le registre sans aucun soulagement.
J'ai constaté que vous pouvez utiliser la commande à partir d'une invite avec privilèges élevés:
fsutil behavior query SymlinkEvaluation
Cela renverra le statut de ces liens ET dans mon cas, ils sont contrôlés par une stratégie de groupe! Merci au service informatique (vous @ $ #% $ rs)!
Ces paramètres peuvent également être manipulés directement via le registre à HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem : Voir SymlinkLocalToLocalEvaluation, SymlinkLocalToRemoteEvaluation, SymlinkRemoteToLocalEvaluation, SymlinkRemoteToRemoteEvaluation.
si avec " requête de comportement fsutil SymlinkEvaluation " vous recevez le message .. " est actuellement contrôlé par la stratégie de groupe " ... ..., vérifiez HKEY_LOCAL_MACHINE \ SOFTWARE \ Stratégies \ Microsoft \ Windows \ Systèmes de fichiers \ NTFS ou recherchez simplement "Symlink" dans le registre
Merci David pour le conseil, je devenais désespéré pour résoudre ce problème qui rendait les liens symboliques pour la plupart inutiles.
Il convient de noter que la configuration par défaut de Vista est L2L et L2R activés, mais que R2R et R2L sont désactivés.
J'ai d'abord essayé d'activer uniquement la R2R, mais cela n'est pas suffisant. R2L doit également être activé.
La question suivante sur ma liste: comment se débarrasser de ce commutateur / D stupide pour la commande mklink pour les liens de répertoire. Le type de lien par défaut doit être déduit automatiquement du type de chemin cible!
Ces paramètres peuvent également être manipulés directement via le registre (nécessite l'écriture de l'administrateur local):
Clé de registre: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem
Valeurs de registre (paires nom / données):
Name Type Data (1: Enabled; 0: Disabled)
-------------------------------------------------
SymlinkLocalToLocalEvaluation REG_DWORD 1
SymlinkLocalToRemoteEvaluation REG_DWORD 1
SymlinkRemoteToLocalEvaluation REG_DWORD 1
SymlinkRemoteToRemoteEvaluation REG_DWORD 1
La documentation officielle est difficile à trouver, mais cela semble être une page officielle de Microsoft: Autorise de manière sélective l'évaluation d'un lien symbolique
Pour votre information, si vous avez mis en place des stratégies de groupe contrôlant les paramètres SymlinkEvaluation, vous pouvez toujours les définir vous-même à partir de la ligne de commande. Ils seront écrasés par GP lors du prochain redémarrage / connexion, mais vos paramètres fonctionneront lors de votre session utilisateur.
En guise de solution de contournement, si vous devez définir une autre option que celle spécifiée par GP, vous pouvez même exécuter un script à la connexion pour les définir après l'application de GP.
Les points de jonction distants fonctionnent par défaut. Pour les fichiers, vous avez toujours besoin de liens symboliques.