这可能是一个相当明显的问题,但在寻找可靠的答案方面遇到了一些困难。
我在 Windows 网络共享上有一个目录,其中包含应用程序的不同版本。我希望有一个指向其中一个称为“当前”的链接,它将是指向所有其他版本旁边的目录的符号链接,并指向其中一个版本。
创建此链接似乎比我想象的更成问题。看起来 symlink 只在创建链接的同一台机器上显示链接(出于显而易见的原因,这不会起作用),并且 junction 需要在服务器上运行,但由于各种限制,这实际上是不可能的。
解决此问题的最佳方法是什么?我是否只需要复制文件两次,或者是否可以创建并远程访问符号链接?
答案1
如果您可以远程访问服务器(可能需要管理员权限),则可以创建文件的硬链接或文件夹的连接,正如您所发现的那样。Windows 文件共享协议对文件系统链接的支持为 0,因此您无法通过标准映射驱动器或远程共享创建它们。
我希望符号链接在共享上显示并在创建后起作用,前提是查看共享的用户有权查看该链接,但正如我上面提到的,您无法在远程共享上创建符号链接。有人问过类似的问题,用户决定使用psexec
远程执行命令在他的服务器上创建链接 - 但这需要管理权限。
答案2
如果(且仅当)您具有服务器管理员访问权限,则可以远程创建符号链接。但是,默认情况下它不起作用,因为必须先在客户端上启用远程符号链接支持。这是出于安全原因。
您可以使用以下命令在客户端上启用远程到远程符号链接:
fsutil behavior set SymlinkEvaluation R2R:1
您可以像这样再次将其关闭:
fsutil behavior set SymlinkEvaluation R2R:0
要查看当前设置:
fsutil behavior SymlinkEvaluation