gpt4 book ai didi

python - 尝试在 Windows 10 上使用 python 创建符号链接(symbolic link)时出现权限错误

转载 作者:可可西里 更新时间:2023-11-01 14:02:59 24 4
gpt4 key购买 nike

我正在尝试在 Windows 10(家庭版)上使用 python 创建符号链接(symbolic link)。代码:

import ctypes

kdll = ctypes.windll.LoadLibrary("kernel32.dll")
kdll.CreateSymbolicLinkW(src_dir, dst_dir, 1)

但我明白了。错误:

*** error: (1314, 'CreateSymbolicLink', 'A required privilege is not held by the client.')

如何解决这个问题?

最佳答案

如果启用了 UAC 并且您的用户是管理员,则本地安全机构(LSA,托管在 lsass.exe 中)使用受限访问 token 登录您的用户。对于此 token ,BUILTIN\Administrators 组仅用于拒绝访问;完整性级别标签为中等而不是高;通常授予管理员的权限已被过滤掉。

要创建符号链接(symbolic link),您需要使用不受限制/提升的访问 token (即从中等完整性级别提升到高完整性级别)来创建流程。通过右键单击并选择“以管理员身份运行”来执行此操作。此提升的 token 将由子进程继承,因此从提升的命令提示符运行 Python 脚本就足够了,您可以通过键盘快捷键 Win+X A 打开它.您可以通过运行 whoami/priv 并检查是否存在 SeCreateSymbolicLinkPrivilege 来验证 cmd shell 是否已提升。如果状态被禁用,请不要 panic 。 Windows CreateSymbolicLink函数自动启用此权限。

就是说,既然您要创建一个目录 符号链接(symbolic link),那么连接也许也能正常工作。创建联结不需要特殊权限。您可以使用 cmd 的 mklink 命令创建联结。例如:

subprocess.check_call('mklink /J "%s" "%s"' % (link, target), shell=True)

关于python - 尝试在 Windows 10 上使用 python 创建符号链接(symbolic link)时出现权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32877260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com