web-dev-qa-db-fra.com

Accès est refusé erreur, lorsque je mklink sur Windows 7

Mon répertoire personnel est c:\Users\phi en tant qu’utilisateur phi et j’ai créé un répertoire dans c:\Users\abc. J'ai besoin d'un lien symbolique de c:\Users\phi\hello vers c:\Users\abc\hello.

Je lance la commande suivante

 mklink c:\Utilisateurs\abc\bonjour c:\Utilisateurs\phi\bonjour 

Mais je reçois l'erreur . L'accès est refusé . L'utilisateur phi est administrateur, je n'ai donc aucun problème à écrire des fichiers dans c:\Users\abc.

Pourquoi est-ce? Comment mklink?

32
prosseek

J'ai trouvé une réponse de ce site . En bref, j'aurais dû exécuter cmd.exe en tant qu'administrateur.

25
prosseek

Les points importants:

  1. Vous devez exécuter en tant qu'administrateur si le contrôle de compte d'utilisateur est activé. (ou au moins une politique de sécurité permettant la création de liens).
  2. Le commutateur /D doit être utilisé si le lien concerne un répertoire.
  3. Le premier paramètre est un lien, le second paramètre est le dossier d'origine.
  4. Le lien ne devrait pas déjà exister.

Usage:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
22
rpattabi

Notez que la même erreur sera présentée lorsque vous essayez de créer des jonctions sur lecteurs mappés. Je tirais mes cheveux là-dessus jusqu'à ce que je tombe sur les exemples de cette page sur MSDN Liens durs et jonctions .

Réponse courte: vous ne pouvez utiliser mklink que sur des volumes locaux.

21
rburte

Sous Windows 7 (et versions ultérieures), vous devez disposer d'un privilège de sécurité spécial pour créer des liens et des jonctions. En tant qu'administrateur, vous pouvez accorder cette autorisation aux utilisateurs utilisant secpol.msc pour définir Local Policies\User Rights Assignment\Create symbolic links.

Si l'utilisateur est connecté à ce moment-là, il devra se déconnecter puis se reconnecter pour pouvoir créer des liens.

Notez la mise en garde que les liens peuvent exposer des faiblesses de sécurité dans certaines applications - je n'ai pas recherché ce que ces faiblesses pourraient être.

14
Lawrence Dol

Si vous utilisez fréquemment Linux, n'oubliez pas que les paramètres sont échangés sous Windows.

Si vous utilisez le mauvais ordre, vous obtiendrez également un "Accès refusé". Parce que vous essayez de créer un lien symbolique là où l'original existe déjà.

Windows: mklink /D link original

Linux: ln -s original link

9
Sascha

J'obtenais ceci parce que j'ai accidentellement couru mklink /D sur un fichier. Le lien n'apparaissait pas dans l'explorateur, mais dans l'explorateur Windows. À l'aide de l'invite de commande, j'ai supprimé le lien de répertoire d'origine non valide, puis je l'ai recréé sans l'option /D.

En passant, je recevais l'erreur "Accès refusé" alors que j'exécutais cmd.exe en tant qu'administrateur.

4
Peter Joles

Outre l'exécution de mklink en tant qu'administrateur, vous devez également vous assurer que vous disposez des autorisations nécessaires pour le dossier de destination auquel vous vous connectez.

1
Martin Wildam

Si vous courez:

mklink/j C:\path_to_link C:\destination

ça devrait marcher. Dans mon cas, powershell et cmd ont produit le même résultat. Pour Powershell, il suffit de lancer la commande avec

cmd/c mklink ...

1
Simons0n

Pour les annuaires, vous devez faire:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
0
Zequez

Cela peut sembler étrange, mais vérifiez que le fichier ou le dossier que vous essayez de créer n'existe pas déjà. Parfois, il est facile de passer inaperçu dans l'invite cmd.

0