Поскольку вы используете локальные учетные записи, простое копирование списков ACL не будет работать, поскольку идентификаторы безопасности на разных компьютерах будут разными.
Я бы работал в несколько этапов:
Первое: получите SID учетной записи (как на старых, так и на новых машинах). Самый быстрый способ - использовать psgetsid (из PSTools )
PS G:\> psgetsid iusr_mymachine
PsGetSid v1.43 - Translates SIDs to names and vice versa
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com
SID for MYMACHINE\iusr_mymachine:
S-1-5-21-3287596715-1315679848-4222504177-1004
Второе: получите SDDL («Язык определения дескриптора безопасности», способ записи ACL в тексте, описанный в MSDN ) нужных файлов. В Win32 и .NET есть методы для этого, но самый простой путь - это PowerShell (с добавлением разрывов строк, чтобы сделать структуру видимой):
PS E:\Dev\Sites> (get-acl .\WebSite).sddl
O:S-1-5-21-1527045006-1366868173-4125010901-1001
G:S-1-5-21-1527045006-1366868173-4125010901-513D:AI
(A;OICI;0x1200a9;;;NS)
(A;OICI;0x1200a9;;;S-1-5-21-1527045006-1366868173-4125010901-1012)
(A;ID;FA;;;S-1-5-21-1527045006-1366868173-4125010901-1001)
(A;OICIIOID;FA;;;CO)
(A;OICIID;FA;;;SY)
(A;OICIID;FA;;;BA)
(A;OICIIOID;FA;;;S-1-5-21-1527045006-1366868173-4125010901-1001)
В-третьих: в этой строке можно применить строковые замены для каждого (SID старого компьютера, SID нового компьютера).
Четвертый: установить новый ACL для папки (или файла):
$sec = get-acl newfolder
$sec.SetSecurityDescriptorSddlForm($sddl)
Очевидно, что лучший способ сделать это для нескольких файлов - это сценарий со сценарием на старой машине, выполняющим 1 и 2, и генерацией сценария для выполнения 3 и 4 на целевом компьютере (чтобы избежать настройки ACL с неизвестные SIDы удаленно).