エラー 1307 (0x0000051B) - Robocopy でコピー中 - 既知の解決策はどれも機能しません

エラー 1307 (0x0000051B) - Robocopy でコピー中 - 既知の解決策はどれも機能しません

次の robocopy オプションを使用して、あるハードドライブから別のハードドライブにフォルダーをコピーしようとしています。

robocopy "H:\Source" "T:\target" /E /COPY:DATSO /R:1 /W:1 /DCOPY:T /Z /LOG:T:\Belfirst_copy.log /NP 

所有者が管理者ではなく、特定のドメイン ユーザーであるファイルの場合、次のエラーが発生します。

ERROR 1307 (0x0000051B) Copying NTFS Security to Destination Directory T:\target\...(a lot of files/dirs)
This security ID may not be assigned as the owner of this object.

私は見つけられる限りの提案された解決策をすべて試しました:

  • ログインしてスクリプトを実行しているドメイン ユーザーに、ソース ディレクトリとターゲット ディレクトリへのフル アクセスを付与します。
  • ログインしてスクリプトを実行しているドメイン ユーザーに、「ファイルとディレクトリの復元」権限を付与します。
  • 管理者として実行
  • batファイルとして実行
  • ログオフして再度ログオンし、再試行してください
  • /Bオプションを使用する
  • /COPY:Sオプションなしで試す

明らかな理由から、/COPY:O オプションなしでコピーすると問題は解決します。しかし、もちろんそれでは目的を達成できません。

何が足りないのでしょうか?

プラットフォーム: Windows Server 2008 R2

(これは「Windows Server 2008 のスケジュールされたタスクでの Robocopy の失敗「ですが、そこにコメントを追加するにはまだ十分な評判がありません。」

答え1

通常、ファイルシステム オブジェクトの NTFS 所有権は、自分自身に対してのみ取得できます。第三者に所有権を設定することはできません。(これにより、ユーザーが、たとえば、疑うことを知らない別の人の所有権で、危険または犯罪につながるデータを保存することを防ぎます。)

セキュリティ ポリシーには「ファイルとディレクトリを復元する」権限があります。Microsoft:

このセキュリティ設定は、オブジェクトの所有者として有効なセキュリティ プリンシパルを設定できるユーザーを決定します。

どうやら、所有権をコピーするにはこの権限が必要です。Robocopy は、任意のプリンシパルに所有権を設定できるセキュリティ コンテキストで実行する必要があります。

デフォルトでは、ローカル管理者には次の権限があります。

既定では、この権限は、ドメイン コントローラー上の Administrators、Backup Operators、および Server Operators グループと、スタンドアロン サーバー上の Administrators および Backup Operators グループに付与されます。

(「ファイルとディレクトリを復元する」権限はポリシーの一部です。有効にするには、ログオフして再度ログオンする必要がある場合があります。)

答え2

私もこの問題に悩まされました。現在ログインしているユーザーを robocopy し、そのユーザーのプロファイル フォルダーすべてをネットワーク共有の場所にコピーするバッチ ファイルを作成しました。変数とこのスイッチの組み合わせを使用すると、すべてのフォルダーがエラーなしでコピーされました。個々のフォルダーごとにコマンドを作成する必要がありますが、うまくいきます。ユーザーにネットワーク共有にフォルダーを作成する権限を与えるか、最初のバックアップの前にフォルダーを作成する必要があるかもしれません。

robocopy "%HOMEPATH%\FOLDER" "\SERVER\NETWORK_SHARE\%USERNAME%\FOLDER" /s /mir /zb /b /copy:dat

関連情報