web-dev-qa-db-ja.com

エラー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の失敗 と非常に関連していますが、コメントを追加するのに十分な評判がありません。)

2
Wouter

通常、ファイルシステムオブジェクトのNTFS所有権は自分でのみ取得できます。所有権を第三者に設定することはできません。 (これにより、ユーザーが他人の無警戒な人物の所有権の下で侵害または有罪のデータを保存することなどを防ぎます。)

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

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

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

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

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

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

1
ManuelAtWork

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

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

1
Admin_Retro_Ray