Я скопировал два дерева с помощью 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
переключитесь на версию robocopy, которая есть в Server 2003.
Я тестирую его в 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)
Источник
Кто-то в другой вопрос предположил, что это какой-то сбой в сети, хотя я копирую файлы на том же диске на той же машине. Эта ОС была проверена несколькими администраторами и установлена на нескольких машинах; поэтому я не знаю, связано ли это с этим. Есть ли способ исправить это?
Если это учетная запись AD, то «сбой в сети» я бы имел в виду, что Windows не может найти учетную запись, что иногда случается, когда возникает проблема с подключением. Также может быть, что ваша учетная запись не имеет прав на поиск учетной записи домена (возможно, это локальная учетная запись?).
Тем не мение, мой Adobe Flash Player Updater на моей рабочей станции работает как СИСТЕМА.
Как бы вы это исправить, скорее всего, будет сценарий 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. Ничего не мешает ты от его установки.