Windows-Server-2003
SID 未設置
我用 robocopy 複製了兩棵樹,一個源和一個目標,為了使它們的權限完全相同,我執行了以下命令:
robocopy /MIR C:\Windows\System32\tasks\ C:\temp\robocopyTasks\out\ robocopy /E /Copy:S /IS /IT C:\Windows\System32\tasks\ C:\temp\robocopyTasks\out\
這篇文章告訴我,上面的方法是在 Windows Server 2003 上使用 robocopy 執行此操作的最佳方法;Server 2003 的 robocopy 版本中幾乎沒有一個
/SECFIX
開關。我正在 Windows 7 上對其進行測試並區分輸出以確保源具有與目標完全相同的權限。當我確認它工作正常時,我計劃在 Windows Server 2003 上做同樣的事情。
為了區分它們,我執行:
icacls "C:\temp\robocopyTasks\out\*" /save "C:\temp\robocopyTasks\acl\tasks_temp.txt" /T
和
icacls "C:\Windows\System32\tasks\*" /save "C:\temp\robocopyTasks\acl\tasks_win.txt" /T
然後我使用以下方法區分它們:
gvim --cmd "set fileencodings^=ucs-2le" -d C:\temp\robocopyTasks\acl\tasks_temp.txt C:\temp\robocopyTasks\acl\tasks_win.txt
當我比較這兩個文件時,我注意到目標端缺少一個A SID和一個缺少的十六進制程式碼(在下面的範例中為 0x1200a9),我不知道它做了什麼。
範例差異:
Adobe Flash Player Updater D:AI(A;;FX;;;SY)(A;;FR;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)
目的地
Adobe Flash Player Updater D:AI(A;;FX;;;SY)(A;;FR;;;SY)(A;ID;0x1f019f;;;BA)(A;ID;0x1f019f;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-4105597198-2712133867-546259262-4010)
來源
另一個問題中的某個人建議這是某種網路故障,即使我正在同一台機器上的同一驅動器上複製文件。該作業系統已通過多個管理員並安裝在多台機器上;所以我不知道這是否與它有關。有沒有什麼辦法解決這一問題?
如果它是一個 AD 帳戶,那麼“網路打嗝”是指 Windows 在查找帳戶時遇到問題,這有時會在出現連接問題時發生。也可能是您的帳戶沒有查找域帳戶的權限(也許是本地帳戶?)。
但是,我的工作站上的 Adobe Flash Player Updater 以SYSTEM身份執行。
您將如何修復它很可能是編寫cacls命令或 powershell set-acl命令的腳本來設置您想要對相關文件的權限。 Set-ACL 允許您將安全性從一個對象複製到另一個對象:
PS C:\> $DogACL = get-acl c:\dog.txt PS C:\> set-acl -path C:\cat.txt -AclObject $DogACL
所以這可能是您最好的選擇,儘管 PowerShell 在 2003 年預設未安裝。不過,沒有什麼可以阻止您安裝它。