Назад | Перейти на главную страницу

Перенос идентификаторов безопасности файлов в списках управления доступом между системами

На самом деле, я установил Windows 7 на свой старый компьютер с XP, и, поскольку я перешел на x64 и использовал x32, пути обновления не было.

Я использовал инструмент миграции пользовательской среды (USMT) для перемещения большого количества вещей, и для того, что он перемещал, он исправил ACL файлов / каталогов, но не все. Немало данных просто осталось на диске.

Все эти оставшиеся данные имеют списки управления доступом, относящиеся к системе XP. В частности, большинство файлов принадлежит основной учетной записи пользователя старой системы.

Итак, как я могу заменить один SID в ACL на новый, переназначив все разрешения старого пользователя новому пользователю?

я использовал icacls <path>\* /save aclfile /t для создания резервной копии всех разрешений. Пришлось запускать от имени администратора, иначе icacls не смог прочитать ACL, чтобы сохранить их.

Изначально я хотел использовать: icacls /restore aclfile /substitute <oldsid> <newsid>, но это не сработает, потому что он не может определить имя пользователя для oldsid.

Так что я просто использовал текстовый редактор, и методом перебора заменил все ссылки на в aclfile на

Затем использовали iacls <path> /restore aclfile чтобы вернуть новые разрешения.