Pull to refresh

Отмена DST для Exchange-серверов

Reading time 7 min
Views 3.7K
Итак, речь пойдёт про отмену DST для пользователей почты, расположенной на серверах Exchange, а именно, про обработку календарей для сохранения правильного времени встреч и событий. Да, 30 октября уже скоро, и может показаться, что уже поздно опубликовывать подобный топик, но, во-первых, кто-то из администраторов почтовых систем мог и не задумываться ранее о необходимости подобных действий и у них ещё есть время, чтобы всё исправить, во-вторых, это не последняя отмена DST в нашем мире, а русскоязычные люди есть везде, и в-третьих, до вчерашнего вечера у меня не было, к сожалению, всей необходимой информации для описания этого процесса. (Конечно же, пользователи могут переделать встречи и события вручную, но автоматизированно оно же всегда лучше, быстрее и точнее, не так ли?)

У меня нет ресурсных п/я, поэтому я опускаю описание процесса их обработки. Оригинальное видео команды Exchange, посвящённое в т.ч. и этой проблеме можно просмотреть здесь.

Я не тестировал применимость данной инструкции к Exchange 2007, только к Exchange 2003, но, судя по оригинальным статьям Microsoft, отличий в процедуре нет. Несмотря на то, что на странице Центра справки и поддержки по переходу на летнее и зимнее время обещается выпуск специального обновления для серверов Exchange, его до сих пор нет и поддержка Microsoft сомневается в его выходе до 30 октября.

Я предполагаю, что на ваши серверы Exchange установлен последний доступный Service Pack.

1. Обновление календарей Outlook (нужно только если у вас есть пользователи, которым почта доставляется в PST-файлы):
1.1. Обновите все клиентские компьютеры соответствующим обновлением часовых поясов Windows.
1.2. Установите на все клиентские компьютеры с Outlook соответствующую версию «Средства обновления данных часового пояса» для Microsoft Outlook
1.3. Настройте автоматический запуск «Средства...» при входе пользователя в Windows с, например, параметром командной строки «/quiet» (Рекомендую перед установкой/запуском ср-ва проверять наличие установленного обновления Windows). Это обновит календарь в местоположении доставки почты по умолчанию, которое может находиться как в локально-расположенном PST-файле, так и в БД Exchange. Ничего страшного при повторном обновлении серверного календаря средством Exchange Calendar Update Tool не произойдёт, каждый элемент календаря будет обновлён только один раз. Множественный запуск «Средства...» также никаких деструктивных действий не производит.
1.4 «Средство обновления данных часового пояса» при обработке события автоматически разошлёт все его участникам оповещения об изменении времени. Проинструктируйте пользователей принимать эти изменения.

2. Подготовка к обновлению серверных календарей:
2.1. Обратите внимание — несмотря на то, что в основной статье, посвящённой проблеме обновления встреч и событий в календарях пользователей Exchange говорится, что на серверы Exchange, перед обновлением серверных календарей, надо установить обновление часовых поясов для Windows, российская Премьер-поддержка не рекомендует этого делать. Вместо этого они предлагают устанавливать обновление ОС на серверах Exchange в самом конце. Выбор за вами. Если у вас есть контракт на Премьер-поддержку, рекомендую не читать это, а обратиться к ним.
2.2. Подготовьте специального пользователя для обновления календарей, расположенных на сервере Exchange:
2.2.1. Создайте пользователя в вашем домене AD (EXAMPLE\DSTUpdate).
2.2.2. Создайте пользователю почтовый ящик на одном из Exchange-серверов.
2.2.3. Предоставьте ему права Exchange View Only Administrator на всю Exchange-организацию.
2.3. Подготовьте компьютер для запуска Exchange Calendar Update Tool (DSTPC).
2.3.1. На компьютере должна быть установлены:
2.3.1.1. Любая из ОС: Windows Server 2003, Windows XP, Windows Vista
2.3.1.2. Microsoft Office Outlook 2003 Service Pack 2 или Microsoft Office Outlook 2007 (Лучше, конечно же, 2007 SP2)
2.3.1.3. «Средство обновления данных часового пояса» для Microsoft Outlook
2.3.1.4. Microsoft .NET Framework version 2.0
2.3.2. На компьютер НЕ должны быть установлены никакие ср-ва управления Exchange-серверами, такие как Exchange System Manager Console и т.п.
2.3.3. Вы можете не подготавливать такой компьютер самостоятельно, а воспользоваться предварительно сконфигурированной виртуальной машиной. Разумеется, её надо будет включить в ваш домен AD.
2.3.4. Добавьте пользователя DSTUpdate в группу локальных администраторов этого компьютера.
2.3.5. Установите на этот компьютер Exchange Calendar Update Configuration Tool.
2.3.6. Залогиньтесь на DSTPC под пользователем DSTUpdate и:
2.3.6.1. Установите значение параметра HKEY_CURRENT_USER\Software\Microsoft\Exchange\client\options\PickLogonProfile (REG_SZ) равное «0».
2.3.6.2. Найдите и переименуйте как угодно файл %USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook\extend.dat

3. Выгрузка часовых поясов из п/я пользователей:
3.1. Зайдите на компьютер DSTPC под пользователем DSTUpdate и запустите Exchange Calendar Update Configuration Tool
3.2. Logging level оставьте Default. Если увидите в логе ошибки, переключите на Verbose, чтобы разобраться, но просто так — не надо замусоривать вывод.
3.3. На странице Time Zone Extraction выберите нужные серверы. Если у вас много серверов, проход по всем может занять несколько часов.
3.4. После нажатия Next, Exchange Calendar Update Configuration Tool попытается выгрузить часовые пояса пользователей с серверов Exchange в файл output.txt, который, кстати, ПЕРЕЗАПИСЫВАЕТСЯ при каждом запуске приложения и попытке выгрузки данных.
3.5. Если к каким-то п/я доступа у пользователя, от имени которого запущено приложение, не будет, вы увидите в TimeZoneExtraction.log примерно такую запись: [20.10.2011 10:26:02][552]:HrProcessMailboxTable:Unable log onto user mailbox:Error 0x8004011D.). Для решения этой проблемы, воспользуйтесь п.4, после чего ещё раз выгрузите часовые пояса.
3.6. Закройте приложение и переходите к п.5.

4. Предоставление доступа пользователю DSTUpdate к ящикам пользователей:
4.1. На компьютере с установленными ср-ми управления Exchange под учётной записью входящей в группу Domain Admins и имеющей права Exchange Full Administrator на организацию Exchange, выполните сценарий cscript GrantMailboxPermission.vbs -Add EXAMPLE\DSTUpdate ChangeRights.txt
4.1.1. Сценарий берётся из всё той же статьи 941018, в разделе REFERENCES.
4.1.2. Сценарий берёт список LegacyExchangeDN из файла ChangeRights.txt и предоставляет пользователю EXAMPLE\DSTUpdate разрешения Full Mailbox Access и Send As для каждого указанного в нём ящика.
4.1.3. Файл ChangeRights.txt надо специально подготовить (вам может помочь Microsoft Office Excel):
4.1.3.1. В кач-ве заготовки берётся TimeZoneExtraction.log. Его надо отредактировать так, чтобы в результирующем файле остались строки содержащие только LegacyExchangeDN (/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=IVANOV.II) без точки на конце, по одному на строку. Пустых строк, строк с каким-либо другим содержимым быть не должно. То есть надо обрезать всё перед LegacyExchangeDN (начинается со «/») и точку в конце.
4.1.3.2. Из файла должны быть убраны все служебные п/я типа:
/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=CONFIGURATION/CN=CONNECTIONS/CN=SMTP (EXCHANGESERVER)/CN={11111111-1111-1111-1111-111111111111}
/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=SYSTEMMAILBOX?11111111-1111-1111-1111-111111111111?
/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=CONFIGURATION/CN=SERVERS/CN=EXCHANGESERVER/CN=MICROSOFT SYSTEM ATTENDANT
4.2. Вывод сценария представляет собой набор, состоящий из точек и восклицательных знаков. Восклицательный знак означает ошибку, точка – всё ОК.
4.2.1. Ошибки записываются в файл GrantMailboxPermission.err.
4.2.2. Ошибка вида
No mailbox owner user accounts found for /O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=IVANOV.II in DC=example,DC=com.
Failed to get user's LDAP path from /O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=IVANOV.II
означает, что с ящиком не проассоциирована учётная запись пользователя в AD. Если всё правильно, и ящику действительно не должен быть назначен пользователь, смело игнорируйте эти ошибки.
4.3. Запускать сценарий можно неограниченное кол-во раз.
4.4. Результаты предоставления разрешений записываются в файл GrantMailboxPermission.log. Берегите его — по нему потом надо будет отменять предоставленные разрешения в п.6.

5. Обработка серверных календарей:
5.1. Выполняется при помощи того же Exchange Calendar Update Configuration Tool. Обработка производится по output.txt, полученному в п.3.
5.1.1. Если п.3 уже был полностью выполнен:
5.1.1.1. На странице выбора почтовых серверов надо нажать кнопку Skip.
5.1.1.2. На следующем экране указать подготовленный output.txt
5.2. output.txt должен быть соответствующим образом подготовлен (вам может помочь продвинутый текстовый редактор):
5.2.1. Из файла должны быть убраны все служебные п/я.
5.2.2. На каждой строке с п/я должен быть указан соответствующий региону часовой пояс:
/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/cn=Configuration/cn=Servers/cn=EXCHANGESERVER /O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=IVANOV.II Russian Standard Time
5.2.2.1. Если часовой пояс не указан, надо его указать вручную. Если часовой пояс указан неправильно, исключите таких пользователей из автоматизированной обработки.
5.2.2.2. Названия часовых поясов соответствуют названиям разделов раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
5.3. Дальше выполняйте все действия руководствуясь простым мастером.
5.4. Если у вас много клиентских компьютеров и не на всех из них ещё установлено обновление Windows, вам придётся выполнять обновление календарей в серверных п/я неоднократно, т.к. пользователи на необновлённых машинах, тем временем, могли создавать встречи и события.

6. Очистка после обновления.
6.1. Запустите сценарий GrantMailboxPermission.vbs с параметром «-remove». Используя данные из файла GrantMailboxPermission.log, сценарий удалит разрешения предоставленные пользователю DSTUpdate на п/я пользователей.
6.2. Отмените разрешение Exchange View Only Administrator для пользователя DSTUpdate.
6.3. Удалите пользователя DSTUpdate из группы локальных администраторов компьютера DSTPC и из AD.
6.4. При необходимости, удалите компьютер DSTPC из AD и деинсталлируйте ОС на нём.

7. Что придётся обновлять вручную:
7.1 Календари в общих папках Outlook, хоть и расположены на сервере, но не обновляются в рамках выполнения вышеприведённых действий. Обновлять их надо вручную, используя «Средство обновления данных часового пояса» для Microsoft Outlook.
7.2 Календари в PST-файлах, не являющихся местом доставки почты по умолчанию, тоже придётся обновить вручную. Вы можете проинструктировать техподдержку или самих пользователей как пользоваться «Средство обновления данных часового пояса».
7.3 Серверные календари пользователей с неправильными часовыми поясами. При помощи всё того же «Средства...»
Tags:
Hubs:
+8
Comments 24
Comments Comments 24

Articles