可以通过网络共享跟踪 NTFS 连接点吗?

可以通过网络共享跟踪 NTFS 连接点吗?

操作系统:Windows Server 2016

如果我有一个文件夹 X,其中包含指向另一个文件夹 Y 的连接点(位于同一台机器和同一卷上)。那么,如果我通过网络共享 X,连接到 X 的远程用户是否会被重定向到 Y?

用例是文件夹位置/名称 Y 在执行计划任务后不时发生变化。但我希望远程用户始终使用相同的网络共享名称 (X)。我可以在执行任务期间更新连接点。

还有其他技术可以实现这一点吗?我使用以下方法取得了一些成功:我重新创建或更新名为 X 的网络共享并使其直接指向 Y。但这仅在 X 是顶级共享时才有效。

我正在寻找一种在以下情况下也能起作用的解决方案:让 X 成为 Y 的共享。然后,如果 Y 包含子文件夹 A,远程用户可以通过网络路径 X\A 访问它。但我还需要这样一种情况,即通过网络路径(例如 X\B),远程用户应该能够访问计算机上完全不同的路径。因此,我的想法是创建一个从 Y\B 到另一条路径的连接点。(远程用户将通过 X\B 访问)

是否可以?

答案1

是的,SMB 文件服务器将自动mklink /j透明地跟随目录连接(),即使目标指向共享文件夹之外。(经过实验测试。)

另一方面,服务器不会跟踪符号链接 ( mklink /d) – 它们留给客户端,默认情况下客户端也不会跟踪它们(如果您启用此选项,目标显然必须是另一个共享文件夹)。有关更多信息,请参阅 harrymc 的帖子。

作为第三个选项,您可以在 Windows Server 上创建共享作为DFS 命名空间,在该目录中,您可以同时拥有常规文件和特殊的“引用”目录,这些目录可能指向另一个共享 - 甚至在另一台服务器上。(这些引用始终在客户端遵循,并且它们被所有 Windows 版本、libsmbclient 甚至 Linux cifs.ko 识别。)

如果需要将文件夹 Y 移动到另一台机器,DFS 可能是首选选项。(它不需要 Active Directory,尽管跨所有文件服务器的通用身份验证确实使事情变得更容易。)

答案2

默认客户端 Windows 不允许符号链接链。

控制该行为的命令是 文件系统工具,文章中进一步记载 Fsutil 行为

您正在寻找的特定行为名为SymlinkEvaluation。您可以在命令提示符中输入命令 来查看其当前值 fsutil behavior query SymlinkEvaluation。以下是我在 Windows 10 上的默认设置:

在此处输入图片描述

的行为代码分别SymlinkEvaluationL2LL2RR2LR2R,含义如下:

  • L代表“本地”,R代表“远程”
  • 第一个LR--2指的是链接本身的位置(而不是其目标)相对于访问链接的机器
  • 第二个LR——-2指的是链接的位置相对于 LINK 本身所在机器的目标

例如,设置SymlinkEvaluation R2L意味着您可以控制对链接的访问:

  • 位于远程机器上(R
  • 指向同一台远程计算机上的目标(L

因此可能性如下:

  1. 本地到本地的符号链接,L2L:{0|1}
  2. 本地到远程的符号链接,L2R:{0|1}
  3. 远程到本地的符号链接,R2R:{0|1}
  4. 远程到远程符号链接,R2L:{0|1}

在哪里0代表禁用,1代表启用。

您可能正在寻找的命令是:

fsutil behavior set SymlinkEvaluation R2L:1

请记住,这要在客户端上完成,而不是在服务器上完成。

答案3

2022 年 9 月:网络共享连接点似乎已停止工作。

https://learn.microsoft.com/en-us/sysinternals/downloads/junction

最后更新:2022 年 7 月 19 日

笔记

Windows 不支持远程共享上的目录连接。

过去,我在我的网络共享服务器上创建了连接点,指向不同的驱动器。一切正常。到目前为止,我已经有一段时间没用它了,但事情却出了问题。

  • 在客户端,双击连接点图标没有任何反应——没有任何内容显示或变化。
  • 在客户端,“属性”将连接点显示为一个文件夹,但其有 0 个字节和 0 个文件。
  • 右键单击图标并选择“在新窗口中打开”没有任何反应。
  • “映射网络驱动器”或直接进入 \server\share 均不起作用

在服务器端,执行以下操作没有帮助:

  • 为连接目标设置新的共享。
  • 重新开始,创建新连接点、新共享,重置“安全”选项卡

Windows 10 Pro 21H2 19044.1889 Windows 功能体验包 120.2212.4180.0

向伟大的微软致敬,因为它打破了另一项生产力功能。

相关内容