由于文件名过长,无法从卷影副本恢复

Spo*_*boy 19 ntfs vss restore windows-sbs-2008

我们在 Windows SBS 2008 服务器上启用了卷影副本。尝试从卷影副本还原文件出现以下错误 -

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

文件名有 67 个字符,它的卷影复制路径是 170 个字符。这些似乎低于 NTFS 限制(260?)。

我们尝试了-

  • 复制到最短路径 (C:)
  • 复制到客户端计算机和服务器本身上可能的最短路径

在进行复制之前,是否可以重命名卷影副本中的文件?尽管文件名大小似乎在限制范围内,但知道为什么会出现错误吗?

采取的步骤

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

编辑-(不)幸运的是,我现在无法重现此错误。导致问题的特定文件已被删除,并且无法使用其他类似文件重新创建错误。

小智 24

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

  1. 右键单击您尝试从卷影副本还原的文件夹,然后选择Previous Versions。选择一个日期并点击Open

  2. 右键单击前一个文件夹中的任何文件或文件夹,然后选择Properties。在“常规”选项卡上复制“位置”中显示的内容,例如: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data

  3. 打开 cmd.exe 并输入:

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

     robocopy X: D:\Folder\ /E /COPYALL
    
    Run Code Online (Sandbox Code Playgroud)
  5. 检查所有文件是否已复制。

  6. 完成后subst X: /D在 cmd(命令提示符)窗口中输入

  • 实际上,ROBOCOPY 没有 256 个路径字符限制。如果使用 ROBOCOPY,则可能不需要 SUBST。 (3认同)