Pourquoi ne puis-je pas créer un lien symbolique (mklink) même lorsque je suis administrateur [duplicate]

16

Lorsque j'exécute mklink /D "C:\Users\bwilliams\AppData\Roaming\Sublime Text 2" "C:\Users\bwilliams\Dropbox\Sublime Text", j'obtiens cette erreur `Vous n'avez pas les privilèges suffisants pour effectuer cette opération.

Pourquoi pas? Je suis administrateur et je souhaite simplement créer un lien dans mon propre répertoire Users \ bwilliams vers un autre dossier de mon répertoire Users \ bwilliams? Qu'est-ce que je fais mal ici?

Merci.

Ben
la source
2
Hilarant. J'essaie de faire exactement la même chose - synchroniser les paramètres de dropbox sous Windows - et je suis complètement empêché de créer des liens symboliques comme un privilège par défaut pour les utilisateurs moyens. Je possède la source et la cible, et elles se trouvent toutes les deux sous mon répertoire personnel. Pourquoi est-ce restreint?!
Mark E. Haase
2
J'ai pu le faire en utilisant mklink / J au lieu de mklink / D. Rien n'a encore explosé ...
Mark E. Haase
@mehaase Vieux commentaire, mais ... vous pouvez arroser les choses avec une jonction mal placée, c'est pour éviter de le faire par inadvertance. Le référencé, pas du tout un doublon et je ne comprends pas pourquoi la balise en double est toujours là aujourd'hui, la question explique comment ajouter cette autorisation à un utilisateur.
EKW

Réponses:

12

Vous devez exécuter à mklinkpartir d'un shell élevé (cliquez avec le bouton droit sur le raccourci d'invite de commandes, Exécuter en tant qu'administrateur).
Si vous êtes en cours d' exécution mklink à partir d' un shell élevée, vérifiez les autorisations sur le répertoire et assurez - vous qu'il n'y a pas d'autorisations explicites Deny définies pour le groupe Administrateurs.

Remarque: assurez-vous que vous n'essayez pas de créer un lien dans lequel existe déjà un répertoire contenant des fichiers et que vous ne créez pas accidentellement un ensemble récursif de liens.

EKW
la source
Je l'ai exécuté en tant qu'administrateur et maintenant il donne l'erreur. Cannot create a file when that file already exists. J'ai donc supprimé le répertoire Dropbox Sublime Text et l'ai réessayé et j'ai reçu le même message. Tu sais ce qui ne va pas?
Ben
@Ben L'erreur est probablement sur le répertoire "Dropbox Sublime Text 2", qui est le nom du lien en cours de création. Assurez-vous qu'il n'y a pas de dossier ou de fichier avec ce nom (il pourrait y avoir un fichier si vous l'avez essayé sans le / D à un moment donné).
mtone
Il n'y a pas un tel fichier ou répertoire. Et la seule chose que je peux voir sur les autorisations est que les "autorisations spéciales" ne sont pas autorisées (ou refusées) pour les administrateurs, le système ou mon compte d'utilisateur bwilliams. Je n'arrive pas à comprendre comment "vérifier" les autorisations spéciales.
Ben
@Ben Qu'est-ce que le répertoire source (le vrai répertoire) et qu'est-ce que le répertoire cible (le répertoire symbolique)? Je pense que vous entrez peut-être les paramètres à l'envers.
EKW
3
Il s'avère que le répertoire que je devais supprimer était le répertoire AppData \ Roaming \ Sublime Text 2 d'origine. est logique maintenant que je l'ai fait.
Ben
7

J'ai rencontré les mêmes problèmes:

Au début, j'ai eu cette erreur: You do not have sufficient privilege to perform this operation

Et après avoir réessayé en utilisant une cmd élevée, j'ai couru mklink /D linkToDir C:\temp\otherLinket j'ai reçu cette erreur:Cannot create a file when that file already exists.

Il s'avère qu'il y avait un lien symbolique (cassé?), Marqué comme Système:

attrib *

A  S  C:\temp\linkToDir

Donc, pour info, vérifiez qu'il n'y a pas de fichier caché (en fait système) utilisant ce nom à partir d'une création de lien symbolique précédemment rompue.

C'est ce que je voulais souligner ici.

enorl76
la source
2

J'ai rencontré le même problème et j'ai juste réussi à le faire fonctionner. J'essayais de forcer iTunes à sauvegarder sur un autre disque (plus grand) (C est un SSD).

Dites que vous voulez aller de c:\dir1\dirToRedirectà d:\dirToRedirectTo, puis:

Assurez-vous qu'il dirToRedirectn'existe pas, car Windows va créer un lien du même nom, ce qui crée un conflit de dénomination. Donc, supprimez dirToRedirect, créez dirToRedirectToet exécutezmklink /j "c:\dir1\dirToRedirect" "d:\dirToRedirectTo"

Tof
la source