Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am a Linux guy and as such I am very lost when I try and do anything is Windows. I am trying to create the following link:

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

But I do not have sufficient privilege to preform this operation. How do I get sufficient privileges in Windows 7?

UPDATE:

Right clicked on C:\backup\data and changed the permissions to full access for authenticated user, restarted the machine and tried the command again with no luck. Anyone have any further suggestions?

share|improve this question
    
Make sure c:\backup\data doesn't already exist when you are trying to create the link as administrator. –  David d C e Freitas Apr 8 '11 at 18:52

8 Answers 8

up vote 56 down vote accepted
+100

As stated here,

Creation of symbolic links requires the SeCreateSymbolicLinkPrivilege (“Create symbolic links”), which is granted only to administrators by default (but you can change that using security policy).

To change the policies:

  1. Launch secpol.msc via Start or Start → Run.

  2. Open Security Settings → Local Policies → User Rights Assignment.

  3. In the list, find the "Create symbolic links" item, which represents SeCreateSymbolicLinkPrivilege.

  4. Double-click on the item and add yourself (or the whole Users group) to the list.

The changes will apply when you log out and log in again.

share|improve this answer
    
Any more information on how exactly to set this? –  Noldorin Sep 20 '11 at 22:58
    
Note that on Win7, the 'Users' group wasn't visible for me until, from the dialog "Select Users or Groups", I clicked the "Object Types" button and added 'groups'. –  Jonathan Hartley Jan 8 '12 at 18:19
2  
This doesn't work for me, regardless of whether I add my user, "Users", or "Everyone". I logged out, and I rebooted, but in my home dir, the command "mklink /D docs Dropbox" still gives me "You do not have sufficient privilege to perform this operation." Same result if I try on files instead of directories. –  Jonathan Hartley Jan 8 '12 at 18:19
    
My problem solved by Brandon Donnelson's answer: In addition to the above, the user running "mklink" cannot be an administrator. –  Jonathan Hartley Jan 8 '12 at 18:42
2  
@Ben I agree it seems barmy. On reflection though, I think I solved my problem by running the 'cmd' window by right clicking and choosing 'run as admin'. Someone explained to me that when launching a process, Windows strips admin privs from it, unless you choose 'run as admin'. At that point, if you are not an admin, you have to enter an admin password. If you are already admin, then you don't have to enter anything. Perhaps that allowed me to run 'mklink' from within the cmd window. –  Jonathan Hartley Mar 19 '12 at 23:17

I found only a non administrator can do it. Add non administrator to create symbolic links and runas non administrator. You'll have to add a person of with non admin privileges. Then you give permission to the target for the non admin, so he can do the runas mklink.

share|improve this answer
    
This totally solved my problem: My user is an adminstrator, but "mklink" would not work until I enabled the "guest" account, call "runas /user:guest cmd" and then run mklink from that new cmd session. It also required temporarily granting perms so that the guest account could cd into and modify my home directory, where I wanted the symlink, which causes a flurry of error dialogs, but they seemed harmles. –  Jonathan Hartley Jan 8 '12 at 18:41
    
For the record, "mklink" doesn't work for my regular user which is an administrator, but does work either when launched from a cmd which has been "runas /user:guest cmd" (I couldn't figure out the quoting required to directly run the mklink command as user guest) or when I remove my own account from the 'administrators' group. –  Jonathan Hartley Jan 10 '12 at 0:49
1  
It also worth noting that it is possible to run mklink successfully with an account that has admin rights. But that requires UAC to be turned off. –  vsizikov Aug 14 '13 at 21:47

I just discovered that I can create a 'Junction' even when I can't create a symlink:

mklink [/D] /J junctionname filename

where /J indicates 'create a junction', and the /D is, I believe, for if the named file is a directory. (my user is currently an administrator)

However, a junction to a 'bat' file doesn't seem to be executable, so this isn't actually any use.

Does anyone understand why this is, or how it can be fixed to provide an alternative approach to the OP's problem?

share|improve this answer
5  
You can create a hardlink (mklink /H) without admin privileges, and that will be executable. Hardlinks are for files, junctions are for directories, symlinks are for both (and /D is used to indicate that a symlink is for a directory). –  Brilliand Jan 3 '13 at 20:49
2  
Junctions and hardlinks are both useless for the example in the OP, though, because neither of them can point to a network drive (hardlinks are limited to same partition, junctions are limited to local drives); only a symlink or Windows shortcut can do that. –  Brilliand Jan 3 '13 at 21:29

SeCreateSymbolicLinkPrivilege is the correct answer to this, and can be accomplished via the local policy editor.

but you have to be an admin to make that change!

share|improve this answer

Run the command prompt as administrator to execute this command.

Type cmd (or command) in the start menu and right click on it and choose "run as an administrator".

Now any command that you execute will be executed with administrator privileges.

share|improve this answer
    
As others have mentioned, SeCreateSymbolicLinkPrivilege is what is required. However, even if you are the administrator in Windows 7, most programs are not run with administrative privileges. To get administrative privileges for a program, follow the steps I mentioned above. –  teknikqa Apr 3 '10 at 23:49

Came across this problem today as well. I had a NAnt build task trying to create symbolic links on a computer. Was getting rejected for lack of privileges. I found this post which helped solve my problem: http://josh.mainelan.net/tag/mklink/.

The relevant section:

1. Bring up your run box, type “secpol.msc” and click OK.
2. Navigate under the Security Settings \ Local Policies \ User Rights Assignment folder.
3. Find “Create symbolic links” and add the Users group to it.

I think you need to restart your computer or something after doing this.
share|improve this answer

The above solutions didn't work for me because not only could I not create a "guest" user on my machine, I can't possibly ask all the users of my tools to do so too on their machines. Nor is it reasonable to require they use Administrator consoles.

My solution is to use: elevate.cmd and elevate.vbs

  1. Download from: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. Put those two files on your system path (or somewhere convenient on the network)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

Cons: elevate.cmd returns immediately but answering the UAC dialog takes time. This forced me to add a "did you ok the UAC dialog yet?" question to my script. It is possible to skip "elevate.cmd" by checking the exit code for the following command: whoami /groups | find "S-1-16-12288" (exit code 0 means you have an Adminstrator console).

share|improve this answer

I'd recommend Ultimate Windows Tweaker. Use it to Select "Show Take Ownership" to get around the permissions issue, and "Show Open Command Window Here" to open command prompt at the correct folder.

alt text

share|improve this answer
    
Installed, opened explorer and right clicked on the folder to be linked and "took ownership" then opened command window from here. Ran the above mklink command and got the same error again. –  stephenmm Mar 28 '10 at 3:14
    
Aw well, worth a try. As a recent Windows -> Linux user, I can sympathize fully about things not working and not knowing why. Good luck. –  outsideblasts Mar 28 '10 at 6:38
4  
Ironically enough, neither taking ownership nor Show Command prompt gives you admin privileges. Just like in Linux. –  surfasb Jul 6 '11 at 22:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.