В последнее время я работал с одним из наших специалистов по хранению над проектом, который включал некоторое изучение больших файловых ресурсов, которые использовались компанией в течение многих лет. Часто мы сталкиваемся с каталогами или файлами, которые нам недоступны (с учетной записью администратора домена) по одной или нескольким из следующих причин:
- поврежденные ACL
- доступ был отменен или запрещен для группы администраторов (или пользователя SYSTEM)
- имя файла + слишком длинный путь (за пределами MAX_PATH )
Есть несколько инструментов, которые могут помочь в этих ситуациях, от Microsoft (например, TAKEOWN.EXE и ICALCS.EXE) или третьих лиц (например, SETACL.EXE ). Иногда нужны другие приемы, такие как запуск одной из команд под учетной записью SYSTEM с помощью PSEXEC.EXE . Даже просто выяснить, какие шаги делать и в каком порядке это вызов ...
Например, я хотел бы иметь возможность устранить неполадки с помощью потока, подобного этому:
- Это слишком длинный путь? Если это так, создайте путь с
\\?\
префиксом, а затем протестируйте снова. - ACL поврежден? Если это так, измените порядок ACE и удалите все неизвестные, затем повторите тестирование.
- Группе администраторов отказано в доступе? Если это так, вступите во владение, добавьте обратно права доступа для группы «Администраторы» и учетной записи SYSTEM, затем повторите тестирование.
- Это все еще терпит неудачу? Если так, удалите все ACE и примените только унаследованные разрешения, затем проверьте снова. (Это своего рода последнее средство, поскольку часто оно открывает разрешения, которые должны были быть более строгими.)
- Это каталог? Если это так, то процесс должен рекурсивно продолжаться для файлов внутри ...
Выполнение вышеуказанных шагов вручную - это боль, и это неразумно, когда нам нужно исправить сотни каталогов. Я пытался написать сценарии, чтобы помочь с ними, но обнаружил, что трудно сделать сценарий «умным» в отношении принимаемых им решений, и поэтому зачастую проще выполнить метод полного восстановления, например, восстановить только унаследованные разрешения.
Кто-нибудь может порекомендовать другое программное обеспечение и / или сценарии, которые помогут в этом процессе? Или как вы решаете подобные проблемы с разрешениями?
источник
/force
опция действительно работает, в отличие от некоторых других (например, запуск под учетной записью SYSTEM с помощью psexec.exe или аналогичные параметры использования-резервного копирования и / или-SYSTEM-разрешения). Мне нужно было написать сценарий PowerShell, чтобы выкопать файловую систему и исправить все, но удивительно, что единственный внешний инструмент, в котором он нуждается, - это. Спасибо за совет, @ syneticon-dj!