web-dev-qa-db-ja.com

ファイル名が長いため、シャドウコピーから復元できません

Windows SBS 2008サーバーでシャドウコピーが有効になっています。シャドウコピーからファイルを復元しようとすると、次のエラーが発生しました-

ソースファイル名がファイルシステムでサポートされているよりも大きいです。この操作を行う前に、パス名が短い場所に移動するか、名前を短くしてください。

ファイル名は67文字で、シャドウコピーのパスは170文字です。これらはNTFSの制限(260?)の範囲内にあるようです。

試しました

  • 可能な最短パスへのコピー(C :)
  • クライアントコンピューターとサーバー自体の両方で可能な最短パスにコピーする

コピーを行う前に、シャドウコピー内のファイルの名前を変更することはできますか?ファイル名のサイズが制限内にあるように見えるにもかかわらず、エラーが表示される理由はありますか?

実施したステップ

  1. ローカルコンピューターで、SBSサーバーの共有フォルダーに移動します(マップされたドライブ経由)。 J:\ Projects\Foo\Bar
  2. フォルダを右クリックして、プロパティを選択します
  3. 以前のバージョンタブをクリックします。
  4. シャドウコピーを選択し、開くをクリックします
  5. 新しく開いたウィンドウで、フォルダー/ファイルを選択し、Ctrl-Cを押してコピーします。
  6. 新しいWindowsエクスプローラーを開き、フォルダー/ファイルをローカルドライブに貼り付けます。

編集-(Un)残念ながら、今はこのエラーを再現できません。問題を引き起こしている特定のファイルは削除されており、他の同様のファイルでエラーを再現することができません。

18
Spongeboy

Server 2008 R2でもまったく同じ問題が発生しましたが、次の方法で解決しました。

  1. シャドウコピーから復元しようとしているフォルダーを右クリックし、以前のバージョンを選択します。日付を選択してOpenをクリックします。
  2. 前のフォルダ内の任意のファイルまたはフォルダを右クリックし、プロパティを選択します。 [全般]タブで、「場所」に表示されているものをコピーします。例:\\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
    
  4. PowerShellを開き、robocopyを使用してXのコンテンツをコピーします。例:

    robocopy Z: D:\Folder\ /E /COPYALL
    
  5. すべてのファイルがコピーされていることを確認します。
  6. 終了したらsubst X: /D in cmd
23
Vilhelm

復元しようとしているフォルダを共有してみましたか?そうすれば、\ server\share\path ....\filename?の代わりに\ server\share\filenameを開くことができます。

それがうまくいかない場合は、 コマンドラインからボリューム にアクセスしてみてください。アクセスには\\?\メソッドを使用できます 2,767文字の制限 =。

3
Zoredache

プロパティ情報ウィンドウの一般タブの「場所」エントリからシャドウコピーファイルの名前/パスを取得してから、「subst」コマンドを使用して長いパスを1文字に減らすことができますか?

subst Z:「H:\ 1\2\3\4\5\6\7 \非常に長い愚かなディレクトリ名を作成したい\ 8\9」

dir Z:dirと同じ "H:\ 1\2\3\4\5\6\7\I非常に長い愚かなディレクトリ名を作成したい\ 8\9"