Всё о о Microsoft Exchange Server и электронной почте.

Как мы с Сашей Трофимовым боролись с зомби в Exchange 2007

Получил я на днях письмо от Саши Трофимова с вопросом про Exch2007, PowerShell и права пользователей. Ситуация такова.

На сервере с Exchange 2007 SP1 разрешена поддержка Public Folders. Создаем в корне PF папку “test1” и даем к ней доступ учетной записи “PavelNagaev”.

[PS] C:\New-PublicFolder -name test1
[PS] C:\Add-PublicFolderClientPermission -id \test1 -user PavelNagaev -AccessRights Editor

Видим ниже, что пользователь “PavelNagaev” получил право Editor.

[PS] C:\>Get-PublicFolderClientPermission \test1

Identity User                               AccessRights
——— —-                               ————
\test1   Default                            {Author}
\test1   exchangerus.ru/Users/PavelNagaev   {Editor}
\test1   exchangerus.ru/Users/Administrator {Owner}
\test1   Anonymous                          {CreateItems}

Затем удаляем учетную запись «PavelNagaev»

[PS] C:\>Remove-Mailbox -Identity exchangerus\PavelNagaev -Permanent $true

И что мы видим при просмотре прав на папку \test1? Правильно, мы видим SID удаленной учетной записи — «NT User:S-1-5-21-3195″. Это называется zombie user.

[PS] C:\>Get-PublicFolderClientPermission \test1

Identity User                                    AccessRights
——— —-                                    ————
\test1   Default                                 {Author}
\test1   NT User:S-1-5-21-319571137-32441274…  {Editor}
\test1   exchangerus.ru/Users/Administrator      {Owner}
\test1   Anonymous                               {CreateItems}

Вопрос Саши заключался в том, как удалять эти зомби аккаунты с помощью PowerShell. Это можно сделать через Outlook, но не через PS. Если запустить Remove-PublicFolderClientPermission то возникает ошибка:

[PS] C:\>Remove-PublicFolderClientPermission -id \test1 -User «NT User:S-1-5-21-319571137-3244127458-2516713604-12139» -AccessRighs Editor


Remove-PublicFolderClientPermission : The specified public folder user «NT User:S-1-5-21-319571137-3244127458-2516713604-12139» des not exist. A valid public folder user should be a mail-enabled user, mailbox or distribution group.
At line:1 char:36
+ Remove-PublicFolderClientPermission <<<< -id \test1 -User «NT User:S-1-5-21-319571137-3244127458-2516713604-12139» -AccessRigh
ts Editor

Где красным по черному написано: A valid public folder user should be a mail-enabled user, mailbox or distribution group.

Это значит, что у скрипта есть очень четкие параметры входа: mail-enabled user, mailbox or distribution group и он просто не может разобрать такое длинное имя.

Соответственно зомби пользователь эту проверку не проходит, поэтому PS с помощью именно RemovePublicFolderClientPermission удалить не даст. Скорее всего придется писать свой скрипт.

Но настоящих сурков такой ответ удовлетворить не мог и я image написал Evan Dodds, Program manager по Exchange в Microsoft.

Evan ответил следующее:

Pavel –
I asked around a bit – as I don’t have a lot of awareness of the details of the PublicFolder Permissions feature – and here’s what I found out:

Yes. What Pavel is observing is by design. When a user is removed, the ACL on public folders has a hanging SID. Since this is not transmitted over the wire (due to conversion to LegacyDN, which cannot be found for deleted users), the only ramification is that of wasted space.

There are currently no cmdlets to clean up such SIDs.

Получается, что на данный момент с помощью командлетов зомби не убить, но если этом можно сделать через Outlook, то наверняка можно и самописным скриптом, только вот стоит ли игра свеч?

Ссылки по теме: What are zombie users?

p.s. Очень большой минус Микрософту, что хоть и сделали в SP1 управление общими папками через EMC, но не сделали возможность раздачи прав через нее. Зачем вообще тогда было делать инструмент управления PF в EMC?

Похожие посты:

  • http://komatozo.blogspot.com Alexander Trofimov

    Хых… А так хотелось счастья… =)
    Сделай, что ли, запрос на доработку =)

  • Nimdan

    Молодец Павел! Желание проверять блог на наличие свежых сообщений есть! 🙂

  • Xaegr

    > Зачем вообще тогда было делать инструмент управления PF в EMC?
    Потому что очень сильно просили 🙂 Помоему изначально было обьявлено что PF в 2007 только для того чтоб выйграть время для перехода на SP 🙂

    Сча попробую повозиться со скриптом 🙂

  • http://www.exchangerus.ru Pavel Nagaev

    Xaegr решил эту проблему так:

    [PS] C:\Get-PublicFolderClientPermission -id "\test1"|where{$_.User -like"NT*"}|remove-publicfolderclientpermission

    Молоток 🙂

  • http://komatozo.blogspot.com Alexander Trofimov

    Ща заценим — спасибо =)

  • http://komatozo.blogspot.com Alexander Trofimov

    Работает, хотя товарищ говорит, что раньше так не работало. =)
    Спасибо еще раз =)

  • http://www.buldakov.ru/?p=812 Exchange 2007: избавляемся от зомби-пользователей в общих папках | Булдаков.ru | Блог этот исключительно о моей жизни и моей работе

    […] […]