Я пишу скрипт, который удалит определенного пользователя, если учетная запись старше 7 дней.
Но когда пользователь удален, разрешения NTFS на моем файловом сервере остаются.
Как я могу удалить все разрешения для определенного пользователя с помощью PowerShell?Удалите разрешения NTFS для пользователя во всех подкаталогах
ответ
Вы должны никогда не предоставлять разрешения отдельным пользователям (за исключением домашних каталогов и профилей пользователей). Как вы сами видите, это беспорядок для очистки. Всегда создавать группы, представляющие конкретные функции/роли, которым требуется доступ, и предоставлять разрешения для этих групп.
Вы можете очистить разрешения с помощью icacls
:
icacls C:\root\folder /remove DOMAIN\user /t /c
Заметим, однако, что вы должны сделать это до того удаления учетной записи, потому что по какой-то причине icacls
не может очистить SIDs удаленных учетных записей ,
Если вы уже удалили учетную запись, вы можете попробовать исправить разрешения с Get-Acl
и Set-Acl
:
Get-ChildItem C:\root\folder -Recurse -Force | ForEach-Object {
$acl = Get-Acl -LiteralPath $_.FullName
$ace = $acl.Access | Where-Object { $_.IdentityReference -like 'S-1-5-*' }
$acl.RemoveAccessRule($ace) | Out-Null
Set-Acl -LiteralPath $_.FullName -AclObject $acl
}
Следует отметить, что вам может понадобиться отрегулировать условия для выбора ACE, чтобы удалить из файла или ACL папки ,
Обратите внимание, что приведенное выше не будет выполнено для файлов/папок, где владелец не является пользователем, выполняющим код или одну из его групп. В такой ситуации вы можете использовать такие инструменты, как subinacl
или SetACL
, в крайнем случае, как описано в ответах на this question на ServerFault.
- 1. вызовов делают во всех подкаталогах
- 2. Запуск Hunspell во всех подкаталогах
- 3. запустить nosetests во всех подкаталогах
- 4. Automake для разделяемых библиотек во всех подкаталогах
- 5. Рекурсивно установить разрешения NTFS
- 6. Как скопировать разрешения ntfs
- 7. Файлы solaris md5 во всех подкаталогах
- 8. Выполнение команды во всех ближайших подкаталогах
- 9. Как объединить файлы во всех подкаталогах?
- 10. Python: запустить скрипт во всех подкаталогах
- 11. Рекурсивного Переименование файлов во всех подкаталогах Последовательной
- 12. Gitignore исключает определенные файлы во всех подкаталогах
- 13. чтение wav-файлов во всех подкаталогах
- 14. bash, «make clean» во всех подкаталогах
- 15. Как создать скрипт Powershell во всех подкаталогах?
- 16. Игнорировать файлы desktop.ini во всех подкаталогах [GitHub]
- 17. Глоток - скопировать файл во всех подкаталогах
- 18. node-gyp: run binding.gyp во всех подкаталогах
- 19. Как запретить выполнение скрипта во всех подкаталогах?
- 20. gitignore всех файлов во всех подкаталогах, за исключением XML-файлы
- 21. Замените разрешения NTFS на PowerShell
- 22. Список всех файлов во всех подкаталогах независимо от количества
- 23. Анализ всех XML-файлов в каталоге и во всех подкаталогах
- 24. Использование For/F для создания новых папок во всех подкаталогах
- 25. Используйте R для поиска файлов во всех подкаталогах
- 26. Bash скрипт для удаления файла во всех подкаталогах.
- 27. Как написать псевдоним/функцию bash для grep всех файлов во всех подкаталогах для строки?
- 28. Файл Foreach в корневом каталоге и во всех подкаталогах
- 29. Makefile, чтобы собрать все CPP файлы во всех подкаталогах
- 30. Как запустить командный файл во всех подкаталогах в каталоге?
Упоминайте, почему вы меняете мой вопрос? –
Я бы заподозрил, что тот, кто поставил ваш вопрос, сделал это, потому что он не прилагает никаких усилий для решения проблемы самостоятельно. –
Привет, в вашем вопросе нет кода, что вы пробовали? – sodawillow