在网络驱动器上创建指向同一网络驱动器(Win10)上的文件的符号链接



问题陈述:

我有一个在Windows 10上运行的python 3.8.5脚本,它处理来自网络驱动器上多个位置的大文件,并创建包含分析结果图的.png文件。所有图形都存储在同一网络驱动器上的单个目标文件夹中。它看起来有点像这个

源文件:\drivesrc1src1.txt\drivesrc2src2.txt\drivesrc3src3.txt

输出文件夹:\drivedestout1.png\drivedestout2.png\drivedestout3.png

有时,我们需要重新绘制原始源文件,并详细检查数据跟踪的一部分。这涉及到在正确的文件夹中查找源文件。源文件名是长的字母数字字符串,所以这个过程很乏味。为了减少繁琐,我想创建到原始源文件的符号链接,并将它们与.png文件并排保存。输出文件夹将看起来像这个

输出文件:

\drivedestout1.png\drivedestout1_src.txt

\drivedestout2.png\drivedestout2_src.txt

\drivedestout3.png\drivedestout3_src.txt

其中\drivedestout1_src.txt是到\drivesrc1src1.txt等的符号链接。

我正试图通过实现这一目标

os.symlink('//drive/dest/out1_src.txt', '//drive/src1/src1.txt')

然而,无论我尝试什么,我都会得到

PermissionError:[WinError 5]拒绝访问

我尝试过从提升的shell运行脚本,启用开发人员模式,并运行

fsutil behavior set SymlinkEvaluation R2R:1

fsutil behavior set SymlinkEvaluation R2L:1

但似乎什么都不起作用。在本地驱动器(例如(上创建符号链接绝对没有问题

os.symlink('C:/dest/out1_src.txt', '//drive/src1/src1.txt')

但这并不能实现我的目标。我也尝试过根据上面的在本地驱动器上创建链接,然后用将它们复制到网络位置

shutil.copy(src, dest, follow_symlinks = False)

并且它以相同的错误消息失败。从升高的外壳直接在外壳中完成同样的事情的尝试也失败了;访问被拒绝";错误消息

mklink \drivedestout1_src.txt \drivesrc1src1.txt

这似乎是某种类型的windows权限错误。然而,当我在shell中运行fsutil behavior query SymlinkEvaluation时,我会得到

本地到本地符号链接已启用
本地到远程符号链接已启用
启用了从远程到本地的符号链接
远程到远程符号链接已启用

知道如何解决这个问题吗?我已经在谷歌上搜索了几个小时,根据我所读到的一切,它应该是有效的,只是它没有。

在承载newtork共享的PC上打开secpol.msc,导航到本地策略-用户权限分配-创建符号链接并添加用于连接到网络共享的帐户。您需要从共享文件夹注销(控制面板-所有控制面板项目-凭据管理器,或者您可能必须重新启动两台计算机(,然后重试。

最新更新