我使用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上进行testing,并对输出进行区分以确保源具有与目标完全相同的权限。 我打算在Windows Server 2003上做同样的事情,当我validation它是正确的。
为了区别他们我运行:
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
当我比较两个文件时,我注意到目标端缺less一个SID ,还有一个丢失的hex代码(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)
资源
另一个问题的人提出,即使我在同一台计算机上的同一个驱动器上复制文件是某种networking呃逆。 这个操作系统已经通过多个pipe理员并安装在多台机器上; 所以我不知道这跟它有什么关系。 有没有什么办法解决这一问题?
如果它是一个AD帐户,那么通过“networking打嗝”,我的意思是,Windows无法查找帐户,有时会发生连接问题。 也可能是您的帐户没有查询域帐户的权限(可能是本地帐户?)。
但是, 我的工作站上的Adobe Flash Player更新程序正在以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
所以这可能是你最好的select,尽pipe在2003年默认情况下没有安装PowerShell。但是,没有什么可以阻止你安装它。