Comment créer un lien dans Windows 7 home premium en tant qu'utilisateur régulier? [dupliquer]

69

Cette question a déjà une réponse ici:

Je suis un gars de Linux et en tant que tel, je suis très perdu lorsque j'essaie de faire quelque chose que ce soit avec 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 obtenir des privilèges suffisants dans Windows 7?

MISE À JOUR:

Cliquez avec le bouton droit de la souris sur C: \ backup \ data et modifiez les autorisations en accès complet pour l'utilisateur authentifié, redémarrez la machine et relancez la commande sans succès. Quelqu'un a d'autres suggestions?

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

Réponses:

112

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 (vous pouvez toutefois le modifier à l’aide de la politique de sécurité).

Pour changer les politiques:

  1. Faites un clic droit sur StartRunet lancez secpol.msc.

  2. Ouvrez Security Settings → Local Policies → User Rights Assignmentet sélectionnez Create symbolic links(cela représente SeCreateSymbolicLinkPrivilege).

entrez la description de l'image ici

  1. Double-cliquez sur l'élément et ajoutez-vous (ou le Usersgroupe entier ) à la liste.

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

Hugh Allen
la source
2
Notez que sous Win7, le groupe "Utilisateurs" ne m'est pas visible jusqu'à ce que, dans la boîte de dialogue "Sélectionner des utilisateurs ou des groupes", j'ai cliqué sur le bouton "Types d'objet" et ajouté "Groupes".
Jonathan Hartley
7
Cela ne fonctionne pas pour moi, que j'ajoute ou non mon utilisateur, "Utilisateurs" ou "Tout le monde". 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 "Vous ne disposez pas des privilèges suffisants pour effectuer cette opération". Même résultat si j'essaie des fichiers au lieu de répertoires.
Jonathan Hartley
3
Mon problème a été résolu par la réponse de Brandon Donnelson: Outre ce qui précède, l'utilisateur qui exécute "mklink" ne peut pas être administrateur.
Jonathan Hartley
@ Jonathan. n'a pas fonctionné pour moi. Et cela semble idiot, ou peut-être que je ne comprends pas. Windows 7 n'autorise pas un administrateur à créer des liens symboliques, mais uniquement les non-administrateurs après qu'un administrateur leur ait attribué des privilèges ???
Ben
4
@ Ben, je suis d'accord, il semble barmy. Après réflexion, je pense avoir résolu mon problème en exécutant la fenêtre 'cmd' en cliquant avec le bouton droit de la souris et en choisissant 'run as admin'. Quelqu'un m'a expliqué que lors du lancement d'un processus, Windows en supprime les privilèges d'administrateur, sauf si vous choisissez «exécuter en tant qu'administrateur». À ce stade, si vous n'êtes pas un administrateur, vous devez entrer un mot de passe administrateur. Si vous êtes déjà administrateur, vous ne devez rien entrer. Cela m'a peut-être permis de lancer «mklink» à partir de la fenêtre de commande.
Jonathan Hartley
19

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 administrateur)

Cependant, une jonction avec un fichier 'bat' ne semble pas être exécutable, ce qui ne sert donc à rien.

Est-ce que quelqu'un comprend pourquoi, ou comment il peut être résolu pour fournir une approche alternative au problème du PO?

Jonathan Hartley
la source
11
Vous pouvez créer un lien physique ( mklink /H) sans privilèges d'administrateur, ce qui sera exécutable. Les liens durs sont pour les fichiers, les jonctions sont pour les répertoires, les liens symboliques pour les deux (et /Dsont utilisés pour indiquer qu'un lien symbolique est pour un répertoire).
Brilliand
3
Les jonctions et les liens durs sont inutiles pour l'exemple du PO, car aucun d'entre eux ne peut pointer sur un lecteur réseau (les liens durs 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.
Brilliand
12

J'ai trouvé que seul un non administrateur peut le faire. Ajoutez non administrateur pour créer des liens symboliques et exécutez non administrateur. Vous devrez ajouter une personne avec des privilèges non administrateur. Ensuite, vous donnez la permission à la cible pour le non-administrateur, afin qu'il puisse faire le runas mklink.

Brandon Donnelson
la source
1
Mon problème est totalement résolu: mon utilisateur est un administrateur, mais "mklink" ne fonctionnera pas tant que je n'aurai pas activé le compte "invité", appelé "runas / user: guest cmd", puis exécuté mklink à partir de cette nouvelle session cmd. Il fallait également accorder temporairement des permanentes pour que le compte invité puisse se connecter et modifier mon répertoire personnel, où je voulais le lien symbolique, ce qui provoque une multitude de dialogues d’erreur, mais ils semblaient bien aller.
Jonathan Hartley
Pour mémoire, "mklink" ne fonctionne pas pour mon utilisateur habituel qui est un administrateur, mais fonctionne également lorsqu'il est lancé à partir d'une cmd qui a été "runas / user: guest cmd" (je ne pouvais pas comprendre la citation requise exécuter directement la commande mklink en tant qu'utilisateur invité) ou lorsque je supprime mon propre compte du groupe des «administrateurs».
Jonathan Hartley
3
Il convient également de noter qu'il est possible d'exécuter mklink avec un compte disposant de droits d'administrateur. Mais cela nécessite de désactiver le contrôle de compte d'utilisateur.
Vladimir Sizikov
2

Les solutions ci-dessus ne fonctionnaient pas pour moi car non seulement je ne pouvais pas créer un utilisateur "invité" sur ma machine, mais je ne pouvais même pas demander à tous les utilisateurs de mes outils de le faire aussi sur leurs machines. Il n'est pas non plus raisonnable d'exiger qu'ils utilisent des consoles d'administrateur.

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

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

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

Denkkar
la source
2

Nous sommes tombés sur ce problème aujourd'hui également. J'ai eu une tâche de construction NAnt essayant de créer des liens symboliques sur un ordinateur. A été rejeté pour manque de privilèges. J'ai trouvé ce post qui a aidé à résoudre mon problème: http://josh.mainelan.net/tag/mklink/ .

La section pertinente:

  1. Affichez votre boîte d'exécution, tapez «secpol.msc», puis cliquez sur OK.
  2. Naviguez dans le dossier Paramètres de sécurité \ Stratégies locales \ Attribution des droits utilisateur.
  3. Recherchez "Créer des liens symboliques" et ajoutez-y le groupe Utilisateurs.

Je pense que vous devez redémarrer votre ordinateur ou quelque chose après cela.

Mat
la source
1

Exécutez l'invite de commande en tant qu'administrateur pour exécuter cette commande.

Tapez cmd (ou commande) dans le menu Démarrer, cliquez dessus avec le bouton droit de la souris et choisissez "Exécuter en tant qu'administrateur".

Désormais, toute commande que vous exécuterez sera exécutée avec les privilèges d'administrateur.

teknikqa
la source
Comme d'autres l'ont mentionné, SeCreateSymbolicLinkPrivilege est ce qui est requis. Cependant, même si vous êtes l'administrateur de Windows 7, la plupart des programmes ne sont pas exécutés avec des privilèges d'administrateur. Pour obtenir les privilèges d’administration pour un programme, suivez les étapes ci-dessus.
teknikqa
Je pense qu'il est au courant de sa
carrière d'
-5

Je recommanderais Ultimate Windows Tweaker . Utilisez-le pour sélectionner «Afficher l’appropriation» pour résoudre le problème des autorisations et «Afficher la fenêtre de commande ouverte ici» pour ouvrir l’invite de commande dans le dossier approprié.

texte alternatif

en dehors des explosions
la source
Installé, explorateur ouvert et clic droit sur le dossier à lier et "a pris possession" puis ouvert la fenêtre de commande à partir d'ici. Exécutez la commande mklink ci-dessus et obtenez à nouveau la même erreur.
stephenmm
Aw well, vaut la peine d'essayer. En tant qu'utilisateur récent de Windows -> Linux, je peux comprendre les choses qui ne fonctionnent pas et qui ne savent pas pourquoi. Bonne chance.
outsideblasts
5
Ironiquement, ni l’acquisition de la propriété ni l’invite de commande ne vous donnent les privilèges d’administrateur. Tout comme dans Linux.
surfasb
-1 Essayez d' essayer vous - même avant de poster , vous auriez alors voir cela ne fonctionne pas
barlop