当我在 Windows 7 上 mklink 时,访问被拒绝错误

pro*_*eek 41 windows-7 mklink

我的主目录是 c:\Users\phi 作为用户 phi,我在 c:\Users\abc 创建了一个目录。我需要从 c:\Users\phi\hello 符号链接到 c:\Users\abc\hello。

我运行以下命令

mklink c:\Users\abc\hello c:\Users\phi\hello

但我收到访问被拒绝错误。用户 phi 是管理员,所以我在 c:\Users\abc 中写入文件没有问题。

为什么是这样?如何链接?

小智 35

要点:

  1. 如果 UAC 开启,您需要以管理员身份运行。(或至少允许创建链接的安全策略)。
  2. /D如果链接是用于目录,则需要使用该开关。
  3. 第一个参数是链接,第二个参数是原始文件夹。
  4. 链接不应该已经存在。

用法:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
Run Code Online (Sandbox Code Playgroud)


pro*_*eek 26

我从这个网站找到了答案。简而言之,我应该以管理员身份运行 cmd.exe。

  • 如果您在链接文件夹时尝试使用 /H 参数,则会收到拒绝访问的消息。您需要单独使用 /D 文件夹。这是 Wouter 链接中包含的内容。+1 给 Wouter,谢谢伙计!:) (11认同)
  • 作为参考,这也可能是一个原因:http://superuser.com/questions/264181/using-mklink-h-results-in-access-is-denied (4认同)

rbu*_*rte 21

请注意,当您尝试在映射驱动器上创建联结时,将出现相同的错误。我一直在纠结这个,直到我在 MSDN Hard Links and Junctions上看到了这个页面上的例子。

简短回答:您只能在本地卷上使用 mklink。

  • @kreemoweet 答案是相关的,因为如果您收到“访问被拒绝错误,当我在 Windows 7 上 mklink”时,原因可能是您没有在本地卷上使用该命令。 (2认同)

Law*_*Dol 18

在 Windows 7(及更高版本)中,您需要特殊的安全权限才能创建链接和联结。作为管理员,您可以将此权限授予使用secpol.msc设置的用户Local Policies\User Rights Assignment\Create symbolic links

如果用户当时已登录,则他们需要注销并重新登录才能创建链接。

请注意链接可能会暴露某些应用程序中的安全弱点的警告 - 我还没有研究这些弱点可能是什么。


Sas*_*cha 12

如果您经常使用 Linux,请记住在 Windows 上会交换参数。

如果您使用错误的顺序,您也会收到“拒绝访问”的消息。因为您正试图在原始文件已经存在的地方创建一个符号链接。

视窗: mklink /D link original

Linux: ln -s original link