【问题标题】:CreateSymbolicLink equivalent to “mklink /J”?CreateSymbolicLink 相当于“mklink /J”?
【发布时间】:2012-10-15 22:00:31
【问题描述】:

没有管理员权限,我知道我可以在命令行中创建符号链接:

mklink /J LinkPath OriginalResourcePath

在 C++ 中,我尝试使用 CreateSymbolicLink;但是,我收到错误“客户未持有所需的特权”。有没有办法在没有管理员权限的情况下为目录创建符号链接/连接,相当于 mklink /j?

提前致谢!

【问题讨论】:

  • 这个问题有 3 个非建设性的接近投票。为什么?

标签: c++ winapi windows-7


【解决方案1】:

您使用mklink /j 创建的不是符号链接。它是一个 NTFS 结点。您可以创建没有管理员权限的联结,但您需要SeCreateSymbolicLinkPrivilege 来创建符号链接。默认情况下,只有管理员令牌具有SeCreateSymbolicLinkPrivilege

因此,您需要创建一个联结点。这篇代码项目文章向您展示了如何做到这一点:http://www.codeproject.com/Articles/194/Windows-2000-Junction-Points

【讨论】:

  • 感谢“默认”。它至少吹掉了我将军“这个世界无法修复”的脾脏的天空。 :)
【解决方案2】:

是的,这是可能的。 Junction 和 GnuWin32 的 ln 在 Windows 上运行良好,我一直使用它们而无需提升。

但适用常规文件系统访问检查。您的程序必须对目录具有写入权限才能创建链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2021-05-06
    相关资源
    最近更新 更多