Windows 10 和符号链接问题

Windows 10 和符号链接问题

我有一个由 Windows 7 和 Windows 10 组成的双启动配置。两者都配置了 C: 盘作为系统盘,D: 盘作为数据盘,其中包括用户目录。我还有另一个(也是物理的!)磁盘,我们称之为 V:,里面有照片和其他东西。

在 Windows 7 上,为了从 D: 盘访问照片,我创建了一个符号链接(连接点),如下所示(历史原因):

mklink /j d:\photos v:\photos

我可以完全访问 d:\photos 中的所有文件夹。所以我尝试在 Windows 10 上执行相同操作,但它没有像我希望的那样正常工作。我可以进入 d:\photos,但无法访问其他子目录,也无法在 d:\photos 中写入任何内容。但我可以毫无问题地访问 v:\photos...

例如,如果我在 Windows 资源管理器中单击 d:\photos\folder1,系统会显示“系统无法将文件移动到其他驱动器”。如果我检查该文件夹的安全选项卡,则会显示“请求的安全信息不可用或无法显示”的消息。

我已经尝试了几种方法,但都没有成功。问题可能是 C: 和 D: 位于同一个 SSD 上,而 V: 是另一个 HD?有什么办法吗?

谢谢!

答案1

虽然本地驱动器支持连接,但实际目录符号链接可能更适合您。Win7(更具体地说,Vista 之后的所有版本)支持这些,但 XP 及更早版本不支持。符号链接存储实际目标名称(因此,只要另一个驱动器在V:两个操作系统上,它就应该可以工作)。我最好的猜测连接点可能使用驱动器号以外的标识符,并且当您切换操作系统时,其他操作系统无法理解某些标识数据。它们显然不理解只是使用名称,否则您将能够与映射的网络驱动器建立连接,但您不能。

为目录创建真正的符号链接的语法与创建连接点的语法相同,只是使用而不是/D的标志。请注意,默认情况下,只有管理员可以创建符号链接(不确定为什么强制执行符号链接而不是连接点,但这就是生活)。因此,以管理员身份启动命令提示符(是的,它必须是;是 CMD 内置的,而不是可以通过 调用的可执行文件)并尝试。mklink/JCMDmklinkPowershellmklink /d d:\photos v:\photos

请注意,您也可以使用mklink不带任何标志来创建文件符号链接,或使用/H标志来制作文件硬链接。这里不相关,因为您尝试链接的是目录而不是文件,但可能是未来有用的信息。大多数人不知道 NTFS 支持硬链接(自... Windows 2000 以来,我想?)和符号链接(自 Vista 以来),即使他们知道连接点(这不是一个完整的符号链接,或者您可以创建一个到网络驱动器的符号链接)。

答案2

我遇到了同样的问题;这似乎是由于将应用程序的安装位置更改为另一个驱动器而导致的。

对我来说,解决这个问题的方法是将新应用程序的保存位置设置回 C,然后重新启动到命令提示符(重新启动时按住 Shift)并删除相关驱动器上的“System Volume Information\wpappsettings.dat”。

答案3

有同样的问题:磁盘 C:(新 Windows10) D:(旧) E:(旧)

我可以从 D 到 C 创建目录连接(用于“Program Files”子文件夹等),但无法从 E 到 D 执行相同操作:创建了连接,但我看不到文件内容和子文件夹,并出现同样的错误。

不明白为什么,但通过加载 Ubuntu 并删除“D:\System Volume Information”(之后由 Win10 重新创建)一切都解决了。

PS. 有正常结果fsutil behavior query symlinkevaluation:local-to-* 已启用,remote-to-* 已禁用

答案4

不久前我遇到过类似的问题,这是由权限系统引起的。就我而言,我有一个 unc-path 作为目标,权限和共​​享已正确配置。在 unc-path 中,我能够创建链接并深入子文件夹,但在符号文件夹中则不行。原因在于从顶级文件夹继承权限。

尝试禁用符号文件夹的继承权限并删除可能导致问题的权限。设置显式权限以获得对符号文件夹的完全控制。就我而言,它解决了问题,我能够创建链接并深入子文件夹。

相关内容