如何以普通用户身份在Windows 7家庭高级版中创建链接?[重复]


69

这个问题已经在这里有了答案:

我是Linux专家,因此当我尝试做任何事情时都非常迷失Windows。我正在尝试创建以下链接:

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

但是我没有足够的特权来执行此操作。如何在Windows 7中获得足够的特权?

更新:

右键单击C:\ backup \ data,然后将权限更改为对经过身份验证的用户具有完全访问权限,重新启动计算机,然后再次尝试该命令,但没有任何帮助。有人有其他建议吗?


当您尝试以管理员身份创建链接时,请确保c:\ backup \ data不存在。
David d C e Freitas

Answers:


112

如前所述这里

创建符号链接需要SeCreateSymbolicLinkPrivilege(“创建符号链接”),默认情况下,该权限仅授予管理员(但您可以使用安全策略来更改)。

更改策略:

  1. 右键单击StartRun并启动secpol.msc

  2. 打开Security Settings → Local Policies → User Rights Assignment并选择Create symbolic links(代表SeCreateSymbolicLinkPrivilege)。

在此处输入图片说明

  1. 双击该项目,然后将您自己(或整个Users组)添加到列表中。

更改将在您注销并再次登录时应用。


2
请注意,在Win7上,“用户”组对我不可见,直到从“选择用户或组”对话框中单击“对象类型”按钮并添加了“组”。
乔纳森·哈特利

7
无论我添加用户,“用户”还是“所有人”,这对我都不起作用。我注销,然后重新启动,但是在我的主目录中,命令“ mklink / D docs Dropbox”仍然给我“您没有足够的权限执行此操作”。如果尝试文件而不是目录,结果相同。
乔纳森·哈特利

3
我的问题由布兰登·唐纳尔森(Brandon Donnelson)的答案解决:除了上述内容外,运行“ mklink”的用户不能是管理员。
乔纳森·哈特利

@乔纳森 没有为我工作。这似乎很愚蠢,或者我误会了。Windows 7不允许管理员创建符号链接,但是只有非管理员在管理员给他们特权后才能创建它们?
2012年

4
@本,我同意这似乎很愚蠢。不过,经过反思,我认为我通过右键单击并选择“以管理员身份运行”来运行“ cmd”窗口来解决了我的问题。有人向我解释说,除非您选择“以管理员身份运行”,否则Windows在启动进程时会从中剥离admin privs。此时,如果您不是管理员,则必须输入管理员密码。如果您已经是管理员,则无需输入任何内容。也许那使我可以从cmd窗口中运行“ mklink”。
乔纳森·哈特利

19

我只是发现即使无法创建符号链接也可以创建“结”:

mklink [/D] /J junctionname filename

/ J表示“创建联结”,而/ D是(如果命名文件是目录)。(我的用户当前是管理员)

但是,与“ bat”文件的连接似乎不是可执行的,因此实际上没有任何用处。

有谁知道这是为什么,或者如何解决它以提供另一种解决OP问题的方法?


11
您可以创建mklink /H没有管理员权限的硬链接(),该链接将是可执行的。硬链接用于文件,联结用于目录,符号链接用于两个目录(并/D用于指示符号链接用于目录)。
Brilliand 2013年

3
但是,对于OP中的示例来说,连接和硬链接都没有用,因为它们都不能指向网络驱动器(硬链接仅限于同一分区,连接仅限于本地驱动器)。只有符号链接或Windows快捷方式可以做到这一点。
Brilliand

12

我发现只有非管理员才能执行此操作。添加非管理员以创建符号链接并以非管理员身份运行。您必须添加具有非管理员权限的。然后,您将权限授予非管理员目标,以便他可以执行runas mklink。


1
这完全解决了我的问题:我的用户是管理员,但是在启用“ guest”帐户,调用“ runas / user:guest cmd”,然后从该新cmd会话运行mklink之前,“ mklink”不起作用。它还需要临时授予权限,以便来宾帐户可以进入并修改我的主目录,在该目录中我需要符号链接,这会导致大量错误对话框,但它们似乎很有害。
乔纳森·哈特利

根据记录,“ mklink”不适用于作为管理员的普通用户,但是在从已为“ runas / user:guest cmd”的cmd启动时也可以工作(我无法弄清楚所需的引号(以用户来宾身份直接运行mklink命令)或当我从“管理员”组中删除自己的帐户时。
乔纳森·哈特利2012年

3
还值得注意的是,它可以使用具有管理员权限的帐户mklink成功运行。但这需要关闭UAC。
弗拉基米尔·西齐科夫(Fladimir Sizikov),

2

上面的解决方案对我不起作用,因为不仅不能在我的机器上创建“来宾”用户,而且我不可能要求所有工具用户在他们的机器上也这样做。要求他们使用管理员控制台也不合理。

我的解决方案是使用:elevate.cmd和elevate.vbs

  1. 从以下位置下载:http : //technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. 将这两个文件放在系统路径上(或网络上方便的位置)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

缺点:elevate.cmd立即返回,但是回答UAC对话框需要时间。这迫使我添加“您确定UAC对话框了吗?” 问我的脚本。可以通过检查以下命令的退出代码来跳过“ elevate.cmd” :(whoami /groups | find "S-1-16-12288"退出代码0表示您具有管理员控制台)。


2

今天也遇到了这个问题。我有一个NAnt构建任务,试图在计算机上创建符号链接。因缺乏特权而被拒绝。我发现这篇文章有助于解决我的问题:http : //josh.mainelan.net/tag/mklink/

相关部分:

  1. 调出运行框,键入“ secpol.msc”,然后单击“确定”。
  2. 导航到“安全设置” \“本地策略” \“用户权限分配”文件夹下。
  3. 找到“创建符号链接”并将“用户”组添加到其中。

我认为您需要在执行此操作后重新启动计算机。


1

以管理员身份运行命令提示符以执行此命令。

在开始菜单中键入cmd(或命令),然后右键单击它,然后选择“以管理员身份运行”。

现在,您执行的任何命令都将以管理员权限执行。


正如其他人所提到的,SeCreateSymbolicLinkPrivilege是必需的。但是,即使您是Windows 7的管理员,大多数程序也不会以管理权限运行。要获得程序的管理特权,请遵循我上面提到的步骤。
teknikqa

我认为他知道有关以管理员身份运行的原因,这就是他问这个问题的原因
barlop

-5

我建议使用Ultimate Windows Tweaker。使用它来选择“显示所有权”来解决权限问题,并选择“在这里显示打开命令窗口”以在正确的文件夹中打开命令提示符。

替代文字


安装并打开资源管理器,然后右键单击要链接的文件夹并“获取所有权”,然后从此处打开命令窗口。运行上面的mklink命令,再次出现相同的错误。
stephenmm'3

很好,值得一试。作为最近使用Windows-> Linux的用户,我可以完全同情那些不起作用并且不知道为什么的事情。祝好运。
2011年

5
具有讽刺意味的是,无论是拥有所有权还是“显示命令”提示都不会赋予您管理员权限。就像在Linux中一样。
surfasb 2011年

-1试试自己尝试,然后再发布,然后您会发现它不起作用
barlop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.