由于长文件名,无法从影复制恢复

我们在Windows SBS 2008服务器上启用了影子副本。 试图从影子副本恢复文件给出了以下错误 –

源文件名大于文件系统支持的文件名。 尝试移动到path名称较短的位置,或在尝试执行此操作之前尝试重命名为较短的名称。

文件名有67个字符,影子复制path是170个字符。 这似乎在NTFS限制(260?)之下。

我们尝试了-

  • 复制到可能的最短path(C 🙂
  • 复制到客户端计算机和服务器本身可能的最短path

在复制之前是否可以重命名影子副本中的文件? 任何想法,尽pipe文件名大小似乎在限制之内,为什么错误出现?

采取的步骤

  1. 在本地计算机上,转到SBS服务器上的共享文件夹(通过映射的驱动器),例如J:\ Projects \ Foo \ Bar
  2. 右键点击文件夹,然后select属性
  3. 点击以前的版本标签。
  4. select一个影子副本,然后单击打开
  5. 在新打开的窗口中,select文件夹/文件,然后按Ctrl-C进行复制。
  6. 打开一个新的Windows资源pipe理器,并将文件夹/文件粘贴到本地驱动器。

编辑 – (联合国)幸运的是,我现在无法重现这个错误。 导致问题的特定文件已经被删除,并且无法用其他类似的文件重新创build错误。

    我在Server 2008 R2中遇到了完全相同的问题,这就是我解决这个问题的方法:

    1. 右键单击要从影复制恢复的文件夹,然后select“ 以前的版本” 。 select一个date,然后点击打开
    2. 右键单击上一个文件夹中的任何文件或文件夹,然后select“ 属性” 。 在常规选项卡上复制“位置”中显示的内容,例如: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data
    3. 打开cmd.exe并input:

       subst X: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data 
    4. 打开PowerShell并使用robocopy复制X的内容:例如:

       robocopy Z: D:\Folder\ /E /COPYALL 
    5. 检查所有文件是否已被复制。
    6. 完成后subst X: /D in cmd键入subst X: /D in cmd

    你有没有尝试共享你正在尝试恢复的文件夹? 这样你可以尝试打开\ server \ share \ filename而不是\ server \ share \ path …. \ filename?

    如果这不起作用,我会build议尝试通过命令行访问卷,在那里你可以使用\\?\访问方法,它有32,767个字符的限制 。

    你可以从属性信息窗口的常规选项卡的“位置”条目中获取卷影副本文件的名称/path,然后使用“subst”命令将长path缩减为单个字母?

    我喜欢创build非常长的\ 8 \ 9“\”\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

    dir Z:和dir是一样的“H:\ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \”我喜欢创build非常长的\ 8 \ 9 \