获取符号链接的目标时,如何克服“由于其types被禁用而无法遵循的符号链接”错误?

继上一个问题之后 ,我使用UNCpath从Vista机器上创buildServer 2008上的符号链接。 我可以创build链接就好了。 我可以去到Server 2008中,然后双击资源pipe理器中的链接打开目标文件。 我不能做的是使用FileCreateW来获取UNCpath链接的句柄(从Vista框)。 当我尝试它,它失败,GetLastError()返回错误代码1463(0x5B7),这是:

符号链接不能被遵循,因为它的types是禁用的。

如何在Server 2008中启用它的“types”(假设错误意味着什么)?

要添加到@David Arno的有用答案 ,基于W7:


fsutil.exe可以通过简单的运行来显示它所需要的参数:

 fsutil behavior set /? 

报告当前configuration ,请运行fsutil behavior query SymlinkEvaluation – 请参阅@ Jake1164的答案 ,特别是关于组策略如何控制行为。

符号链接parsing行为在访问给定链接的机器上设置 ,而不是托pipe它的机器。

fsutil behavior set SymlinkEvaluation (即L2LL2RR2LR2R行为代码表示如下:

  • L代表“本地”, R代表“远程”(谁会变成?)
  • 第一个LR 2 之前 – 是指链路本身(相对于它的目标) 相对于机器访问链路的位置
  • SECOND LR 2 – 是指链路目标相对于LINK本身所在的机器的位置

因此,例如,执行fsutil behavior set SymlinkEvaluation R2L意味着您可以访问链接:

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

与David在Vista上经历的不同,我在W7上能够通过单独启用R2R(而不必启用R2L)来parsing指向另一个远程机器上的资源的远程链接。

那么我find了答案,尽pipe把它形容为严重记载的是轻描淡写!

首先, 这篇TechEd文章强调了用户可以“启用或禁用符号链接中可用的四种评估”的事实。 这四个“评估”包括远程到本地和从本地到远程。 它没有给出任何线索如何做到这一点。

然而,进一步的search显示了这个fsutil帮助页面 ,它实际上logging了如何“启用或禁用符号链接中可用的四个评估”中的任何一个。 所以要解决我遇到的问题,我需要在Vista中发出以下命令:

 fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 

以允许完全访问符号链接在本地和远程机器上指向的位置。

我最近在所有公司的Windows 7盒子上find了这个,当我的一个旧程序停止工作。 经过一些search和find这些设置,我试图通过命令行设置,并通过registry,没有救济。

我发现你可以使用提升的命令:

 fsutil behavior query SymlinkEvaluation 

这将返回这些链接的状态,在我的情况下,他们正在由组策略控制! 感谢IT部门(你f @ $#%$ rs)!

在这里输入图像说明

感谢大卫的提示,我正在拼命解决这个问题,这使得符号链接几乎无用。

应该注意的是,Vista的默认configuration是启用了L2L和L2R,但禁用了R2R和R2L。

我第一次尝试只启用R2R,但这是不够的。 R2L也必须启用。

在我的列表中的下一个问题:如何摆脱mklink命令的目录链接愚蠢的/ D开关。 应该从目标path名types自动推断默认链接types!

这些设置也可以通过HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystemregistry直接操作:请参阅SymlinkLocalToLocalEvaluation,SymlinkLocalToRemoteEvaluation,SymlinkRemoteToLocalEvaluation,SymlinkRemoteToRemoteEvaluation。

如果使用“fsutil行为查询SymlinkEvaluation”,您将得到消息..“ 当前由组策略控制 ”,检查HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ Filesystems \ NTFS或者简单地search“Symlink”

这些设置也可以通过registry直接操作(需要本地pipe理员编写):

registry项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

registry值(名称/数据对):

 Name Type Data (1: Enabled; 0: Disabled) ------------------------------------------------- SymlinkLocalToLocalEvaluation REG_DWORD 1 SymlinkLocalToRemoteEvaluation REG_DWORD 1 SymlinkRemoteToLocalEvaluation REG_DWORD 1 SymlinkRemoteToRemoteEvaluation REG_DWORD 1 

官方文档很难find,但这似乎是一个官方的微软网页: select性地允许评估一个符号链接

仅供参考,如果您有控制符号链接评估设置的组策略,您仍然可以从命令行自行设置它们。 在下一次重新启动/login时,它们将被GP覆盖,但您的设置将在用户会话期间起作用。

所以作为一种解决方法,如果您需要将其设置为GP所规定的以外,甚至可以在login时运行脚本以在应用GP之后设置它们。

远程连接点默认工作。 对于文件,你仍然需要符号链接。