Недавно столкнулся с задачей аудита NTFS-разрешений, назначенных на папки пользователей. Как можно проанализировать разрешения на большое количество папок? Поиск решения привёл меня к модулю File System Security PowerShell Module для PowerShell, опубликованному на сайте галереи Technet.
Для установки нужно создать папку «NTFSSecurity» в папке модулей PowerShell и распаковать содержимое архива в эту папку. Узнать где находятся папки модулей можно, выполнив команду Get-Item env:PSModulePath. Также модуль можно загрузить из галереи PowerShell и с github.
После распаковки модуль должен появиться в выводе команды «Get-Module -ListAvailable», и его можно импортировать в оболочку командой Import-Module NTFSSecurity.
Возможности модуля весьма обширны. Например, можно проверить все вложенные папки относительно текущего расположения на предмет отключения наследования разрешений и включить наследование:
dir | Get-NTFSAccess -ExcludeInherited | Remove-NTFSAccess
Можно сделать бэкап текущих разрешений в файл CSV
dir | Get-NTFSAccess -ExcludeInherited | Export-Csv permissions.csv
затем восстановить разрешения
dir | Clear-NTFSAccess
Import-Csv .\permissions.csv | Add-NTFSAccess
Доступные коммандлеты:
Add-NTFSAccess
Add-NTFSAudit
Clear-NTFSAccess
Clear-NTFSAudit
Disable-NTFSAccessInheritance
Disable-NTFSAuditInheritance
Enable-NTFSAccessInheritance
Enable-NTFSAuditInheritance
Get-NTFSAccess
Get-NTFSAudit
Get-NTFSEffectiveAccess
Get-NTFSHardLink
Get-NTFSInheritance
Get-NTFSOrphanedAccess
Get-NTFSOrphanedAudit
Get-NTFSOwner
Get-NTFSSecurityDescriptor
Get-NTFSSimpleAccess
New-NTFSHardLink
New-NTFSSymbolicLink
Remove-NTFSAccess
Remove-NTFSAudit
Set-NTFSInheritance
Set-NTFSOwner
Set-NTFSSecurityDescriptor
Show-NTFSSimpleAccess
Дальше можно включать голову и использовать различные сочетания команд. Например, можно собрать разрешения для пользователей AD, назначенные на папку, создать группу в AD для доступа к этой папке, поместить в группу этих пользователей и назначить NTFS-разрешения на папку уже группе AD. Вариантов использования очень много.