![示例差异:](https://linux22.com/image/656373/%E7%A4%BA%E4%BE%8B%E5%B7%AE%E5%BC%82%EF%BC%9A.png)
我使用 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 执行此操作的最佳方法;因为/SECFIX
Server 2003 的 robocopy 版本中有一个开关。
我正在 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
当我比较两个文件时,我注意到目标端缺少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)
来源
有人在其他问题这表明这是某种网络故障,尽管我正在同一台机器上的同一驱动器上复制文件。此操作系统已由多位管理员更换并安装在多台机器上;所以我不知道这是否与此有关。有什么方法可以解决这个问题吗?
答案1
如果是 AD 帐户,那么“网络故障”是指 Windows 无法查找帐户,这种情况有时会在出现连接问题时发生。也可能是您的帐户没有查找域帐户(可能是本地帐户?)的权限。
然而,我的我的工作站上的 Adobe Flash Player 更新程序正在运行系统。
修复该问题最可能的方法是编写脚本权限控制命令或 powershell设置 acl命令来设置您想要的相关文件的权限。 Set-ACL 允许您将安全性从一个对象复制到另一个对象:
PS C:\> $DogACL = get-acl c:\dog.txt
PS C:\> set-acl -path C:\cat.txt -AclObject $DogACL
所以这可能是你最好的选择,尽管 2003 上默认没有安装 PowerShell。没有什么可以阻止的你但是无法安装它。