%20-%20Robocopy%20%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%E4%B8%AD%20-%20%E6%97%A2%E7%9F%A5%E3%81%AE%E8%A7%A3%E6%B1%BA%E7%AD%96%E3%81%AF%E3%81%A9%E3%82%8C%E3%82%82%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93.png)
次の 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