Windows XP与Vista:NTFS联接点

19

问题:我在Windows XP中大量依赖NTFS连接点,即使它们显然不是操作系统的“官方”功能。现在微软慷慨地将NTFS连接点作为Vista的正式部分发布,但显然他们也有意破坏了它们。现在,当我将那个驱动器插入到Vista计算机中时,我在WinXP上创建的连接点就无法工作了。

问题:有人有一个脚本可以强制在XP上创建的NTFS连接点在Vista和XP中都正确地工作吗?是否有文档或规范解释了MSFT是如何造成这种破坏的?

更新:感谢Ulrich和Scott的跟进问题。我用来创建连接点的工具是Systinternals Junction v1.05,尽管我不能确定它们全部都是使用这个现在由MSFT托管的应用程序的特定版本创建的。

至于连接点的使用...假设外部的“Q驱动器”设备:

  • 1) Q驱动器上的某些项目是链接,它们从Q驱动器的一个位置指向另一个位置(例如,我需要在多个位置拥有同一个文件夹的情况,传统的.lnk样式快捷方式将无法工作)。

  • 2) 有些项目是链接,它们直接从C驱动器指向Q驱动器上的位置。这些项目在Q驱动器未实际连接的情况下显然无法使用(XP或Vista),但在Vista上连接时,链接不像在XP上那样工作。


1
我对此很感兴趣,尽管我不使用联接点,但我对NTFS很感兴趣。 - BobbyShaftoe
6个回答

9
Junction和符号链接是两种不同的NTFS对象,它们并不完全相同。为什么你的Junction在Vista中无法识别还是一个谜,但Junction功能在Vista中仍然存在,而且没有故意破坏。
您可以使用mklink(http://technet.microsoft.com/en-us/library/cc753194.aspx)创建软链接(默认值)、硬链接(/h)或Junctions(/j)。与Junctions相比,符号链接的最大改进之处在于符号链接可以引用文件或目录(Junctions仅限于目录),并且它们还可以引用网络共享(Junctions不能)。
但归根结底,它们是不同的。虽然无法告诉您现有的Junctions为什么无法被Vista识别,但您仍然可以按上述方式创建它们。
另一篇帖子中提到的免费实用程序(LinkMagic)是让您的Junctions再次工作的最佳选择。或者使用mklink重新创建它们。

3
为什么不试试使用这个程序(免费软件)LinkMagic 创建链接。显然,Windows Vista 需要不同版本的程序。我已经尝试过XP和Vista版本,它们都可以工作。我知道这与您的具体问题无关,但考虑到每个操作系统都有单独的版本,创建联接的方法可能会有所不同。
您使用的工具相当旧(2007年),并且没有提到 Windows Vista。我知道微软在联接点中进行了一些更改,以添加他们想要使用的某些功能。Vista 在处理 Program Files 文件夹等方面更加权威。

3
除了之前评论中提到的Linkmagic程序,还有另一个很好的程序用于操作(和检查)链接和联接:Link shell extension。这两个程序都可以告诉你现有的链接/联接指向哪里以及它们是什么。这可能会帮助你弄清楚问题出在哪里。链接如上所示:http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html。请注意不要删除HTML标签。

2
你想链接到什么?你是在链接你的便携式驱动器还是从你的驱动器链接出去?你使用了 "mklink /d" 命令吗?

1

1

同一卷内的连接点应该可以工作 - 它们应该是硬链接目录。

您是否尝试过在XP机器之间使用USB驱动器?它可能无法工作。

我知道对于Vista,卷不是通过路径(Q :) 而是通过卷GUID来识别的。 $MFT_REPARSE_POINT格式可能已从XP更改为Vista以适应此。 在Vista下,这意味着即使您的Q驱动器突然变成X,连接点仍应该工作,在XP下则会中断。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接