%20-%20%E4%BD%BF%E7%94%A8%20Robocopy%20%E8%A4%87%E8%A3%BD%E6%99%82%20-%20%E5%B7%B2%E7%9F%A5%E7%9A%84%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%A1%88%E5%9D%87%E7%84%A1%E6%95%88.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 所有權。您不能將所有權設定給第三人。 (這可以防止用戶將洩漏或有罪的資料儲存在另一個毫無戒心的人的所有權下。)
安全性策略中有一個「恢復檔案和目錄」權限。微軟狀態:
此安全性設定 [...] 決定哪些使用者可以將有效的安全主體設定為物件的擁有者。
顯然,您需要此特權來複製所有權。 Robocopy 必須在允許將所有權設定為任意主體的安全上下文中運作。
預設情況下,本機管理員擁有此權限:
預設情況下,此權限會授予網域控制器上的管理員、備份操作員和伺服器操作員群組以及獨立伺服器上的管理員和備份操作員群組。
(「恢復檔案和目錄」權限是該政策的一部分。您可能需要登出並重新登入才能生效。)
答案2
我也有這個煩惱。我編寫了一個批次檔來 robocopy 目前登入的使用者並將其所有設定檔資料夾複製到網路共用位置。使用變數和開關的組合可以準確無誤地複製每個資料夾。必須為每個單獨的資料夾建立一個命令,但它有效。您可能必須授予使用者在網路共用中建立資料夾的權限,或在首次備份之前建立資料夾。
robocopy "%HOMEPATH%\FOLDER" "\SERVER\NETWORK_SHARE\%USERNAME%\FOLDER" /s /mir /zb /b /copy:dat