Предыстория…
Решили мы переехать с Exchange 2003 на Exchange 2010. Миграция прошла удачна и все работало как надо, пока не настал момент вывода из AD старого Exchange сервера. На этом этапе я сделал несколько ошибок… Так как штатными средствами, через установку/удаления программ, сервис exchange не удалялся, было принято решение удалять его вручную. В итоге что-то пошло не так (скорее всего удалил что-то лишнее), почта перестала работать… В итоге я решил поднять архив старого exchange 2003 и AD, но к сожалению, а точнее потому что не до следил, эти архивы были с разницей в несколько недель, а других архивов не было. Но в итоге почта заработала и все вроде бы стало хорошо, пока я не дошел до проверки работоспособности Public Folders. И тут начались мои муки восстановления, которые продолжались несколько недель в не рабочее время. Пытался восстанавливать архивы контроллеров доменов (а их у нас 3), почтаря, опробовав Symantec Backup Exec 2010 и его модуль работы с AD и прочее, в итоге так ничего и не добившись решил исправлять руками при помощи ADSIedit и командлетов.
P.S. А вообще прежде чем, что то делать, делайте бэкапы=)
Понеслась…
Вот такую картину я имел на начальной стадии:
Так как все базы были перенесены на Exchange 2010, то Exchange 2003 я решил отключить, а все оставшиеся хвосты в AD вычистить, но сначала восстановить полную работоспособность PF (public folders). На этот момент база монтировалась и через Outlook можно было просматривать содержание папок, но не удалить, не как-либо отредактировать PF нельзя было.
Первым делом я подправил CN=First Administrative Group. Правой кнопкой на нем, свойства, нашел атрибут SiteFolderServer и отредактировал его, так что бы он указывал на расположение текущей базы данных PF (CN=Public Folder Database 1069753095,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=org,DC=ru)
После этого ребутнул Exchange 2010, зашел PF management console (а до этого даже туда не мог зайти, сразу ошибку выдавал) и увидел, что все папки в целостности и сохранности, но опять же с ними ничего нельзя было сделать, ругается на иерархию… Ладно идем дальше… За основу брал статью с MS, ниже просто приведу её:
Воссоздание иерархий папок и контейнеров общих папок
1. Используя редактор ADSI или подобное средство, найдите и разверните объект Административная группа Exchange (FYDIBOHF23SPDLT).
Найти этот объект можно в следующем месте:
CN=Configuration,CN=Services,CN=Microsoft Exchange,CN=Organization,CN=Administrative Groups
2. Щелкните правой кнопкой мыши объект Административная группа Exchange (FYDIBOHF23SPDLT) и выберите команду Создать, а затем выберите пункт Объект.
3. В списке Выберите класс выберите элемент msExchPublicFolderTreeContainer и нажмите кнопку Далее.
4. В поле Значение введите Folder Hierarchies и нажмите кнопку Далее, а затем кнопку Готово.
5. Щелкните правой кнопкой мыши созданный объект Folder Hierarchies и выберите команду Создать, а затем пункт Объект.
6. В списке Выберите класс выберите элемент msExchPFTree и нажмите кнопку Далее.
7. В поле Значение введите Public Folders и нажмите кнопку Далее.
8. Нажмите кнопку Другие атрибуты.
9. В списке Выберите класс выберите элемент msExchPFTreeType и нажмите кнопку Далее.
10. В поле Изменить атрибут введите значение 1 и нажмите последовательно кнопки Задать, ОК и Готово.
11. Чтобы назначить контейнер общих папок каждому общему хранилищу, щелкните правой кнопкой мыши контейнер Public Folders и выберите пункт Свойства.
12. В списке Атрибуты выберите атрибут distinguishedName и нажмите кнопку Изменить.
13. Скопируйте содержимое поля Значение в буфер обмена и нажмите кнопку Отмена.
14. На каждом сервере, на котором зарегистрировано событие MSExchangeIS 9519 с кодом ошибки 0x972, найдите объект хранилища общих папок. По умолчанию он находится в следующем месте:
CN=Configuration,CN=Services,CN=Microsoft Exchange,CN=Organization,CN=Administrative Groups, CN=Exchange Administrative Group (FYDIBOHF23SPDLT), CN=Servers, CN= имя_сервера , CN= банк_данных , CN=Second Storage Group.
15. Щелкните правой кнопкой мыши объект хранилища общих папок и выберите пункт Свойства.
16. В списке Атрибуты выберите атрибут msExchOwningPFTree и нажмите кнопку Изменить.
17. Вставьте значение, скопированное в буфер обмена при выполнении действия 13, в поле Значение и дважды нажмите кнопку ОК.
18. Повторите действия с 15 по 17 для каждого сервера, на котором было зарегистрировано событие MSExchangeIS 9519 с кодом ошибки 0x972.
19. Перезапустите службу банка данных Microsoft Exchange на соответствующих серверах.
Единственное отличие, то что в 14 пункте мне пришлось править немного другой каталог, как на скрине ниже:
После снова ребут Exchange сервера. Проверяю через командлет PF:
Get-PublicFolderStatistics -Server «имя сервера»
После этого с PF можно было работать через ToolBox в Exchange Management Console. Единственное на ящиках, которые должны принимать почту пришлось сделать Mail disable – Mail enable и после этого почта начала приниматься, так же, что бы почта приходила из вне должна стоять галочка на вкладке Permissions у Anonymous:
Имеем полностью рабочие PF, единственное у меня осталось упоминание о прошлом Exchange сервере в каталоге System PF — SCHEDULE+ FREE BUSY, пока не разобрался как вычистить оттуда его.
Далее я восстановил GAL (глобальную адресную книгу), так как из неё удалились все адреса. Для её обновления в командлетах есть специальная команда:
Update-GlobalAddressList -Identity «Global Address List»
Вот в принципе и все=)
Хотя нет, вычистил я еще через ADSIedit упоминания о старом Exchange 2003 и удалил First Administrative Group (это надо делать аккуратно=) ).
Так же из CN=Connections,CN=Exchange Routing Group (DWBGZMFD01QNBJR),CN=Routing Groups,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=org,DC=ru
Была удалена связь старого и нового Exchange серверов.
В итоге вот так сейчас выглядит CN=Administrative Groups: