Случайно наткнулся в блоге Паши Нагаева на пост о борьбе с зомби-пользователями в правах доступа к общим папкам. В качестве решения в комментариях было предложено решение от Васи Гусева, правда, применительно к одной папке (вложенные не очищались).
Стандартная картинка с правами доступа к общей папке может выглядеть следующим образом:
На картинке прекрасно видно, что происходит с записями в ACL в случае удаления пользователя из AD. Именно поэтому советуют раздавать права на уровне групп, а не отдельных пользователей. Впрочем, в ситуации показанной выше проблема с присутствием так называемого зомби-пользователя существует, и было бы неплохо её решить. А ещё лучше было бы у всех общих папок скопом всех зомби-пользователей удалить. Скрипт в итоге получился следующий:
Get-PublicFolder -Identity "" -Recurse | Get-PublicFolderClientPermission | where {$_.User -like "NT User:S*"} | Remove-PublicFolderClientPermission
Скрипт перебирает все общие папки, смотрит в них права доступа и если находит пользователя, начинающегося с “NT User:S”, то удаляет его из ACL.