77 votes

Comment créer un lien dans Windows 7 home premium en tant qu'utilisateur normal ?

Je suis un adepte de Linux et je suis donc très perdu lorsque j'essaie de faire quelque chose sous Windows. J'essaie de créer le lien suivant :

mklink /d C:\backup\data \\myth\backup\data

Mais je n'ai pas le privilège suffisant pour effectuer cette opération. Comment puis-je obtenir des privilèges suffisants dans Windows 7 ?

UPDATE :

Cliquez avec le bouton droit de la souris sur C:\backup\data et changé les permissions en accès complet pour l'utilisateur authentifié, redémarré la machine et essayé la commande à nouveau sans succès. Quelqu'un a-t-il d'autres suggestions ?

0 votes

Assurez-vous que c : \backup\data n'existe pas déjà lorsque vous essayez de créer le lien en tant qu'administrateur.

128voto

Hugh Allen Points 9530

Comme indiqué ici ,

La création de liens symboliques nécessite le privilège SeCreateSymbolicLinkPrivilege ("Créer des liens symboliques"), qui n'est accordé qu'aux administrateurs par défaut (mais vous pouvez changer cela en utilisant la politique de sécurité).

Pour modifier les politiques :

  1. Cliquez à droite sur Start``Run et lancer secpol.msc .

  2. オープン Security Settings Local Policies User Rights Assignment et sélectionnez Create symbolic links (qui représente SeCreateSymbolicLinkPrivilege ).

enter image description here

  1. Double-cliquez sur l'élément et ajoutez vous-même (ou l'ensemble de l'équipe). Users groupe) à la liste.

Les modifications s'appliqueront lorsque vous vous déconnecterez et vous reconnecterez.

2 votes

Notez que sous Win7, le groupe "Utilisateurs" n'était pas visible pour moi jusqu'à ce que, dans la boîte de dialogue "Sélectionner des utilisateurs ou des groupes", je clique sur le bouton "Types d'objets" et ajoute "groupes".

10 votes

Cela ne fonctionne pas pour moi, que j'ajoute mon utilisateur, "Users" ou "Everyone". Je me suis déconnecté et j'ai redémarré, mais dans mon répertoire personnel, la commande "mklink /D docs Dropbox" me donne toujours "You do not have sufficient privilege to perform this operation" (Vous n'avez pas les privilèges suffisants pour effectuer cette opération). Même résultat si j'essaie sur des fichiers au lieu de répertoires.

4 votes

Mon problème est résolu par la réponse de Brandon Donnelson : En plus de ce qui précède, l'utilisateur qui exécute "mklink" ne peut pas être un administrateur.

22voto

Jonathan Hartley Points 924

Je viens de découvrir que je peux créer une 'Jonction' même si je ne peux pas créer de lien symbolique :

mklink [/D] /J junctionname filename

où /J indique 'créer une jonction', et le /D est, je crois, pour si le fichier nommé est un répertoire. (mon utilisateur est actuellement un administrateur)

Cependant, une jonction vers un fichier 'bat' ne semble pas être exécutable, donc cela n'est pas vraiment utile.

Est-ce que quelqu'un comprend pourquoi il en est ainsi, ou comment il peut être corrigé pour fournir une approche alternative au problème de l'OP ?

12 votes

Vous pouvez créer un lien dur ( mklink /H ) sans les privilèges d'administrateur, et il sera exécutable. Les liens en dur concernent les fichiers, les jonctions concernent les répertoires, les liens symboliques concernent les deux (et les /D est utilisé pour indiquer qu'un lien symbolique correspond à un répertoire).

6 votes

Les jonctions et les hardlinks sont tous deux inutiles pour l'exemple cité dans l'OP, car aucun d'entre eux ne peut pointer vers un lecteur réseau (les hardlinks sont limités à la même partition, les jonctions sont limitées aux lecteurs locaux) ; seul un lien symbolique ou un raccourci Windows peut le faire.

14voto

Brandon Donnelson Points 141

J'ai découvert que seul un non administrateur peut le faire. Ajouter un non administrateur pour créer des liens symboliques et exécuter en tant que non administrateur. Vous devez ajouter une personne avec des privilèges de non administrateur. Ensuite, vous donnez la permission à la cible pour le non administrateur, afin qu'il puisse faire le lien symbolique runas mklink.

2 votes

Cela a totalement résolu mon problème : mon utilisateur est un administrateur, mais "mklink" ne fonctionnait pas tant que je n'avais pas activé le compte "guest", appelé "runas /user:guest cmd" et ensuite exécuté mklink à partir de cette nouvelle session cmd. Il a également fallu accorder temporairement des perms pour que le compte invité puisse accéder à mon répertoire personnel et le modifier, là où je voulais créer le lien symbolique, ce qui a provoqué une multitude de boîtes de dialogue d'erreur, mais elles semblaient inoffensives.

0 votes

Pour mémoire, "mklink" ne fonctionne pas pour mon utilisateur habituel qui est un administrateur, mais fonctionne soit lorsqu'il est lancé à partir d'un cmd qui a été "runas /user:guest cmd" (je n'ai pas réussi à trouver le quoting nécessaire pour lancer directement la commande mklink en tant qu'utilisateur guest), soit lorsque je retire mon propre compte du groupe "administrators".

4 votes

Il convient également de noter qu'il es Il est possible d'exécuter mklink avec succès avec un compte disposant des droits d'administrateur. Mais pour cela, il faut désactiver l'UAC.

4voto

Denkkar Points 41

Les solutions ci-dessus n'ont pas fonctionné pour moi car non seulement je ne pouvais pas créer un utilisateur "invité" sur ma machine, mais je ne peux pas demander à tous les utilisateurs de mes outils de le faire aussi sur leurs machines. Il n'est pas non plus raisonnable de leur demander d'utiliser des consoles d'administrateur.

Ma solution est d'utiliser : elevate.cmd et elevate.vbs

  1. Télécharger à partir de : http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. Placez ces deux fichiers sur le chemin de votre système (ou dans un endroit approprié du réseau)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

Contre : elevate.cmd renvoie immédiatement mais répondre à la boîte de dialogue UAC prend du temps. Cela m'a obligé à ajouter une question "avez-vous déjà ok le dialogue UAC ?" à mon script. Il est possible d'ignorer "elevate.cmd" en vérifiant le code de sortie de la commande suivante : whoami /groups | find "S-1-16-12288" (le code de sortie 0 signifie que vous avez une console Adminstrator).

2voto

J'ai également rencontré ce problème aujourd'hui. J'avais une tâche de construction NAnt qui essayait de créer des liens symboliques sur un ordinateur. Elle était rejetée pour manque de privilèges. J'ai trouvé ce post qui m'a aidé à résoudre mon problème : http://josh.mainelan.net/tag/mklink/ .

La section concernée :

  1. Faites apparaître votre boîte d'exécution, tapez "secpol.msc" et cliquez sur OK.
  2. Naviguez sous le dossier Security Settings \ Local Policies \N User Rights Assignment.
  3. Trouvez "Créer des liens symboliques" et ajoutez-y le groupe Utilisateurs.

Je pense que vous devez redémarrer votre ordinateur ou autre après avoir fait cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X