Использование пакетной миграции для переноса общедоступных папок Exchange 2010 в Exchange 2016 или Exchange 2019

Перенесите общедоступные папки с Exchange Server 2010 с пакетом обновления 3 (SP3) НА Exchange Server 2016 или Exchange 2019 в том же лесу.

Серверы Exchange 2010 с пакетом обновления 3 (SP3) и накопительным пакетом обновления 8 (RU8) или более поздней версии называются серверами Exchange Server прежних версий.

Миграция выполняется с помощью командлетов *MigrationBatch и командлетов *PublicFolderMigrationRequest для устранения неполадок. Кроме того, вы будете использовать следующие скрипты PowerShell:

  • Export-PublicFolderStatistics.ps1: этот скрипт создает файл сопоставления имени папки с размером папки.

  • Export-PublicFolderStatistics.psd1: этот файл поддержки используется скриптом Export-PublicFolderStatistics.ps1 и должен быть скачан в то же расположение.

  • PublicFolderToMailboxMapGenerator.ps1: этот скрипт создает файл сопоставления общедоступных папок с почтовым ящиком.

  • PublicFolderToMailboxMapGenerator.strings.psd1: этот файл поддержки используется скриптом PublicFolderToMailboxMapGenerator.ps1 и должен быть скачан в то же расположение.

  • Create-PublicFolderMailboxesForMigration.ps1: этот скрипт создает целевые почтовые ящики общедоступных папок для миграции. Кроме того, этот скрипт вычисляет количество почтовых ящиков, необходимых для обработки предполагаемой нагрузки пользователя, на основе рекомендаций по количеству входов пользователей в почтовый ящик общедоступных папок, рекомендуемых в разделе Ограничения для общедоступных папок.

  • Create-PublicFolderMailboxesForMigration.strings.psd1: этот файл поддержки используется скриптом Create-PublicFolderMailboxesForMigration.ps1 и должен быть скачан в то же расположение.

В разделе Шаг 1. Скачивание скриптов миграции содержатся сведения о том, где скачать эти скрипты. Не забудьте скачать все скрипты в одно и то же расположение.

Дополнительные сведения о задачах управления, связанных с общедоступными папками, см. в разделе Процедуры с общедоступными папками.

Какие пути миграции поддерживаются для Exchange Server версий?

Exchange поддерживает перемещение общедоступных папок из следующих прежних версий Exchange Server:

  • Exchange 2010 с пакетом обновления 3 (SP3) и накопительным пакетом обновления 8 (RU8) или более поздней версии;

Что нужно знать перед началом работы

  • Перед началом мы советуем полностью прочитать этот раздел, поскольку при выполнении некоторых действий требуется простой.

  • Сервер Exchange 2010 должен работать под управлением Exchange 2010 с пакетом обновления 3 (SP3) и накопительным пакетом обновления 8 (RU8) или более поздних версий.

  • Максимальное количество общедоступных папок, которые можно перенести в Exchange 2016 за один раз, составляет 500 000.

  • В Exchange 2016 вам необходимо быть членом группы ролей "Управление организацией". Дополнительные сведения о том, как включить группу ролей Управление организацией, см. в разделе Управление группами ролей.

  • В Exchange 2010 вы должны быть участником группы ролей RBAC "Управление организацией" или "Управление сервером". Дополнительные сведения см. в разделе Добавление участников в группу ролей.

  • Перед переносом следует ознакомиться с разделом Ограничения общедоступных папок.

  • Перед миграцией переместите все почтовые ящики пользователей в Exchange 2016, так как пользователи с почтовыми ящиками Exchange 2010 не будут иметь доступа к общедоступным папкам в Exchange 2016. Дополнительные сведения см. в разделе Перемещение почтовых ящиков в Exchange Server.

  • Когда миграция будет завершена, чтобы внешние отправители могли отправлять сообщения в перенесенные общедоступные папки с включенной поддержкой почты, анонимному пользователю необходимо предоставить разрешение по крайней мере на создание элементов. Если этого не сделать, внешние отправители получат уведомление об ошибке доставки, а сообщения не будут доставлены в перенесенную общедоступную папку с включенной поддержкой почты. Дополнительные сведения о настройке разрешений для анонимного пользователя см. в статье Mail-enable or mail-disable a public folder.

  • Для переноса всех данных общедоступных папок необходимо использовать один пакет миграции. Exchange позволяет одновременно создавать только один пакет миграции. При попытке создать несколько пакетов миграции одновременно, результатом будет ошибка.

  • Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.

Важно!

Перед началом миграции убедитесь, что вы переносите почтовый ящик арбитража на целевой сервер Exchange Server. В противном случае пакет миграции зависнет в начальном состоянии. Чтобы определить почтовый ящик арбитража миграции, выполните следующий командлет:
Get-Mailbox -Arbitration -Identity Migration.*

Шаг 1. Скачивание сценариев миграции

  1. Скачайте все сценарии и сопутствующие файлы со страницы Public Folders Migration Scripts.

  2. Сохраните эти сценарии на локальном компьютере, с которого вы собираетесь запускать оболочку PowerShell. (Например, в папку C:\PFScripts). Убедитесь, что все сценарии сохранены в одном и том же месте.

Этап 2. Подготовка к миграции

Перед началом миграции выполните указанные ниже предварительные действия.

Необходимые действия на сервере Exchange 2010

  1. В целях проверки в конце миграции рекомендуется сначала выполнить следующие команды на сервере Exchange 2010, чтобы создать моментальные снимки текущего развертывания общедоступных папок:

    • Выполните следующую команду, чтобы сделать моментальный снимок начальной структуры исходных папок:

      Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
      
    • Выполните следующую команду, чтобы сделать моментальный снимок статистики общедоступных папок, такой как число элементов, размер и владелец:

      Get-PublicFolderStatistics | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
      
    • Выполните следующую команду, чтобы сделать моментальный снимок разрешений:

      Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:\PFMigration\Legacy_PFPerms.xml
      
  2. Если имя общедоступной папки содержит обратную косую черту ( \ ), миграция создаст перенесенные общедоступные папки в родительской общедоступной папке. Мы советуем вам перед миграцией переименовать общедоступные папки с обратной косой чертой в имени.

    Чтобы найти общедоступные папки в Exchange 2010 с обратной косой чертой в имени, выполните следующую команду:

    Get-PublicFolderStatistics -ResultSize Unlimited | Where {($_.Name -like "*\*") -or ($_.Name -like "*/*") } | Format-List Name, Identity
    

    Если эта команда возвращает сведения об общедоступных папках, переименуйте их с помощью такой команды:

    Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>
    
  3. Убедитесь, что нет записи об успешной ранее миграции, выполнив следующую команду:

    Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
    

    Ранее успешная миграция присвоит свойствам PublicFoldersLockedforMigration или PublicFolderMigrationComplete значение True, что приведет к сбою нового запроса на миграцию.

    Если свойства имеют Trueзначение , выполните следующую команду, чтобы изменить их на False:

    Set-OrganizationConfig -PublicFoldersLockedforMigration $false -PublicFolderMigrationComplete $false
    

    Примечание.

    После сброса этих свойств необходимо дождаться обнаружения новых параметров системой Exchange. На это может потребоваться до двух часов.

Подробные сведения о синтаксисе и параметрах см. в следующих разделах:

Предварительные действия на сервере Exchange 2016

  1. Убедитесь, что отсутствуют запросы на перенос общедоступных папок. Если они есть, очистите их, иначе выполнить ваш запрос не удастся. Этот шаг не является обязательным во всех случаях. Это необходимо только в том случае, если вы считаете, что в конвейере может существовать запрос на миграцию.

    Важно!

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

    • Выполните следующую команду, чтобы обнаружить все существующие запросы на пакетную миграцию:

      $batch = Get-MigrationBatch | ?{$_.MigrationType.ToString() -eq "PublicFolder"}
      
    • Выполните следующую команду, чтобы удалить все существующие запросы на пакетную миграцию общедоступных папок.

      $batch | Remove-MigrationBatch -Confirm:$false
      
  2. Убедитесь, что на серверах Exchange 2016 отсутствуют общедоступные папки или почтовые ящики общедоступных папок, выполнив следующую команду:

    Get-Mailbox -PublicFolder
    

    Если команда не вернула никаких почтовых ящиков общедоступных папок, перейдите к Шаг 3. Создание CSV-файлов. Если команда вернула какие-либо общедоступные папки, запустите следующую команду, чтобы проверить наличие каких-либо общедоступных папок:

    Get-PublicFolder
    

    Если у вас есть какие-либо общедоступные папки, выполните следующие команды, чтобы удалить их. Убедитесь, что вы сохранили информацию, содержавшуюся в общедоступных папках.

    Примечание.

    При удалении общедоступных папок вся информация в них удаляется безвозвратно.

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    

Подробные сведения о синтаксисе и параметрах см. в следующих разделах:

Шаг 3. Создание CSV-файлов

  1. На сервере Exchange 2010 запустите Export-PublicFolderStatistics.ps1 скрипт, чтобы создать файл сопоставления имени папки с размером папки. Этот скрипт должен выполняться локальным администратором. Этот файл будет иметь два столбца: FolderName и FolderSize. Значения для столбца FolderSize будут отображены в байтах. Например, \PublicFolder01,10000.

    .\Export-PublicFolderStatistics.ps1 <Folder to size map path> <FQDN of source server>
    
    • FQDN of source server указывает полное доменное имя сервера почтовых ящиков, на котором размещена иерархия общедоступных папок.

    • Путь к карте папки и размера равен имени файла и пути в общей локальной или сетевой папке, в которой требуется сохранить файл .csv. Для дальнейших действий, описанных в этой статье, вам потребуется доступ к этому файлу с сервера Exchange 2016. Если указать только имя файла, он будет создан в текущем каталоге PowerShell на локальном компьютере.

    Пример 1

    В следующем примере статистика общедоступных папок экспортируется в файл с именемPFStats.csv в той же папке, из которой выполняется скрипт:

    .\Export-PublicFolderStatistics.ps1 -ExportFile PFStats.csv -PublicFolderServer bat2exch1
    

    Пример 2

    В следующем примере статистика общедоступных папок экспортируется в файл с именемPFStats.csv в общей сетевой папке Data on server Exch2:

    .\Export-PublicFolderStatistics.ps1 -ExportFile \\Exch2\data\PFStats.csv -PublicFolderServer exch1
    
  2. PublicFolderToMailboxMapGenerator.ps1 Запустите скрипт, чтобы создать файл сопоставления общедоступных папок с почтовым ящиком. Этот файл используется для вычисления правильного количества почтовых ящиков общедоступных папок на сервере Exchange 2016.

    Примечание.

    Если имя общедоступной папки содержит обратную косую черту ****, общедоступные папки будут созданы в родительской общедоступной папке. Мы советуем вам просмотреть CSV-файл и изменить имена папок с обратной косой чертой.

    .\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
    
    • Maximum mailbox size in bytes указывает максимальный размер новых почтовых ящиков общедоступных папок. Указывая значение данного параметра, обязательно оставьте свободное место на случай увеличения размера почтового ящика с общедоступными папками.

    • Путь к карте папки с размером равен полному пути к файлу .csv, созданному при выполнении скрипта Export-PublicFolderStatistics.ps1 .

    • Folder to mailbox map path указывает имя и путь CSV-файла сопоставления папок с почтовыми ящиками, который будет создан в результате этого действия. Если указать только имя файла, он будет создан в текущем каталоге оболочки PowerShell на локальном компьютере.

Шаг 4. Создание почтовых ящиков общедоступных папок в Exchange 2016

Выполните следующую команду, чтобы создать целевые почтовые ящики общедоступной папки. Скрипт создаст целевой почтовый ящик для каждого почтового ящика в файле .csv, созданном ранее на шаге PublicFoldertoMailboxMapGenerator.ps1 3, выполнив скрипт.

.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv Mapping.csv -EstimatedNumberOfConcurrentUsers:<estimate>

Mapping.csv — это файл, созданный скриптом на шаге PublicFoldertoMailboxMapGenerator.ps1 3. Предполагаемое количество одновременных подключений пользователей, просматривающих иерархию общедоступной папки, обычно меньше, чем общее количество пользователей в организации.

Шаг 5. Запуск запроса на миграцию

После создания запроса на пакетную миграцию в командной консоли Exchange вы можете просматривать запросы и управлять ими в Центре администрирования Exchange (EAC).

  1. На сервере Exchange 2016 выполните следующую команду:

    New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData ([System.IO.File]::ReadAllBytes('<Folder to mailbox map path>')) -NotificationEmails <email addresses for migration notifications>
    

    Параметр NotificationEmails является необязательным.

  2. Запустите миграцию в EAC или в командной консоли Exchange.

    • В командной консоли Exchange выполните следующую команду:

      Start-MigrationBatch PFMigration
      
    • В Центре администрирования Exchange:

      1. Войдите в Exchange Online и откройте Центр администрирования Exchange.

      2. Перейдите в раздел Миграция получателей>.

      3. Выберите только что созданный пакет миграции и нажмите кнопку "Пуск".

      В EAC в столбце Состояние начальное состояние пакета будет отображаться как Создано. Во время переноса состояние изменяется на Синхронизация. После завершения запроса на перенос состояние изменится на Синхронизация завершена. Дважды щелкните пакет, чтобы увидеть состояние отдельных почтовых ящиков в пакете. Задания почтовых ящиков начинаются с состоянием В очереди. Когда задание начнется, состояние будет синхронизировано, а после InitialSync завершения состояние будет отображаться Синхронизировано.

Вы можете просматривать ход и завершение миграции и управлять ими на вкладке Миграция получателей> в EAC.

Так как командлет New-MigrationBatch инициирует запрос на миграцию почтовых ящиков для каждого почтового ящика общедоступных папок, вы можете просмотреть состояние этих запросов на странице миграции почтового ящика в EAC и создать отчеты о миграции, которые можно отправить вам по электронной почте.

  1. Войдите в Exchange Online и откройте Центр администрирования Exchange.

  2. Перейдите в раздел Миграция получателей>.

  3. Выберите только что созданный запрос на миграцию и нажмите кнопку Просмотреть сведения в области Сведения .

Подробные сведения о синтаксисе и параметрах см. в таких разделах:

Шаг 6. Блокировка общедоступных папок на сервере Exchange 2010 для окончательной миграции (требуется простой)

До этого этапа в процессе миграции пользователи могли обращаться к общедоступным папкам. На следующих шагах пользователи будут выходить из общедоступных папок Exchange 2010 и блокировать их, пока миграция завершит окончательную синхронизацию. В это время пользователи не смогут обратиться к общедоступным папкам. Кроме того, все сообщения, отправленные в общедоступные папки с поддержкой почты, будут занесены в очередь и не будут доставлены до окончания миграции общедоступных папок.

Перед выполнением PublicFoldersLockedForMigration команды, как описано ниже, убедитесь, что все задания находятся в синхронизированном состоянии. Это можно сделать, выполнив Get-PublicFolderMailboxMigrationRequest команду . Продолжайте выполнение этого шага только после того, как убедитесь, что все задания находятся в синхронизированном состоянии.

На сервере Exchange 2010 выполните следующую команду, чтобы заблокировать общедоступные папки для завершения.

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

Дополнительные сведения о синтаксисе и параметрах см. в разделе Set-OrganizationConfig.

Если в вашей организации есть несколько баз данных общедоступных папок, необходимо подождать, пока репликация общедоступных папок не завершится, чтобы убедиться, что все базы данных общедоступных папок получили PublicFoldersLockedForMigration значение свойства и все ожидающие изменения, недавно внесенные пользователями в папки, были сошлись по всей организации. Это может занять несколько часов.

Действие 7. Завершение миграции общедоступных папок (требуется простой в работе)

Для начала измените тип развертывания Exchange 2016 на Удаленный с помощью следующего командлета:

Set-OrganizationConfig -PublicFoldersEnabled Remote

После этого можно выполнить миграцию общедоступных папок, используя следующую команду:

Complete-MigrationBatch PFMigration

Перенос можно также завершить через Центр администрирования Exchange, нажав Завершить этот пакет миграции.

После завершения миграции Exchange выполнит окончательную синхронизацию между сервером Exchange 2010 и Exchange 2016. Если итоговая синхронизация выполнена успешно, общедоступные папки на сервере Exchange 2016 будут разблокированы, а состояние пакета миграции изменится сначала на Завершение, а затем — на Завершено. Обычно для пакета миграции требуется несколько часов, прежде чем его состояние изменится с Синхронизировано на Завершение, после чего начнется окончательная синхронизация.

Примечание.

Если по какой-либо причине пакетный файл миграции не завершается (значение свойства PublicFolderMigrationComplete равно False), перезапустите хранилище данных (IS) на сервере Exchange 2010.

Действие 8. Проверка результатов миграции и разблокировка общедоступных папок

После переноса общедоступных папок необходимо провести указанный ниже тест, чтобы убедиться в успешном выполнении. Благодаря ему вы сможете проверить иерархию перенесенных общедоступных папок, прежде чем их использовать в Exchange 2016.

  1. Выполните следующую команду в PowerShell, чтобы настроить для тестовых почтовых ящиков использование любого почтового ящика с общедоступными папками после переноса как ящика с общедоступными папками по умолчанию.

    Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>
    
  2. Войдите в Outlook 2007 или более поздней версии с помощью тестового пользователя, определенного во время предыдущего действия, и выполните следующие тесты общедоступной папки:

    • просмотр иерархии;

    • проверка разрешений;

    • создание и удаление общедоступных папок;

    • помещение содержимого в общедоступную папку и его удаление.

  3. Если возникнут проблемы, см. раздел Roll back the migration далее в этой статье. Если содержимое и иерархия общедоступных папок приемлемые и работают надлежащим образом, выполните указанную ниже команду, чтобы разблокировать общедоступные папки для остальных пользователей.

    Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
    

    Важно!

    Не используйте параметр IsExcludedFromServingHierarchy после завершения начальной проверки миграции, так как этот параметр используется службой автоматической балансировки нагрузки для Exchange.

  4. На сервере Exchange 2010 выполните следующую команду, чтобы указать, что миграция общедоступных папок завершена:

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. Убедившись, что миграция завершена, выполните на сервере Exchange 2016 приведенную ниже команду.

    Set-OrganizationConfig -PublicFoldersEnabled Local
    
  6. Чтобы внешние отправители могли отправлять сообщения в перенесенные общедоступные папки с включенной поддержкой почты, анонимному пользователю необходимо предоставить разрешение по крайней мере на создание элементов. Если этого не сделать, внешние отправители получат уведомление об ошибке доставки, а сообщения не будут доставлены в перенесенную общедоступную папку с включенной поддержкой почты.

    Чтобы задать разрешения для анонимного пользователя, можно использовать командную консоль Exchange или Outlook. Дополнительные сведения о настройке разрешений для анонимного пользователя см. в разделе Mail-enable or mail-disable a public folder.

Как проверить, что это работает

В Step 2: Prepare for the migration указывалось, что перед началом миграции необходимо сделать моментальные снимки структуры, статистики и разрешений общедоступных папок. С помощью приведенных ниже действий можно проверить успешность миграции общедоступных папок, сделав такие же моментальные снимки после завершения миграции. Затем можно сравнить данные в обоих файлах, чтобы проверить успешность.

  1. Выполните следующую команду, чтобы сделать моментальный снимок новой структуры папок.

    Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Cloud_PFStructure.xml
    
  2. Выполните следующую команду, чтобы сделать моментальный снимок статистики общедоступных папок, такой как число элементов, размер и владелец.

    Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML C:\PFMigration\Cloud_PFStatistics.xml
    
  3. Выполните следующую команду, чтобы сделать моментальный снимок разрешений.

    Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML  C:\PFMigration\Cloud_PFPerms.xml
    

Удаление баз данных общедоступных папок с серверов Exchange 2010

После завершения миграции и проверки того, что общедоступные папки Exchange 2016 или Exchange 2019 работают должным образом, следует удалить базы данных общедоступных папок на серверах Exchange 2010.

Дополнительные сведения об удалении баз данных общедоступных папок с серверов Exchange 2010 см. в разделе Удаление баз данных общих папок.

Откат миграции

Если у вас возникли проблемы с миграцией и вам нужно повторно активировать общедоступные папки Exchange 2010, выполните следующие действия.

Осторожностью

При откате миграции на серверы Exchange 2010 вы потеряете все сообщения электронной почты, отправленные в общедоступные папки с поддержкой почты, или содержимое, которое было отправлено в общедоступные папки в Exchange 2016 или Exchange 2019 после миграции. Чтобы сохранить это содержимое, необходимо экспортировать содержимое общедоступных папок в PST-файл, а затем импортировать его в общедоступные папки Exchange 2010 по завершении отката.

  1. На сервере Exchange 2010 выполните следующую команду, чтобы разблокировать перенесенные общедоступные папки. Этот процесс может занять несколько часов.

    Set-OrganizationConfig -PublicFoldersLockedForMigration $false
    
  2. На сервере Exchange 2016 выполните указанные ниже команды для удаления почтовых ящиков общедоступных папок.

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
  3. На сервере Exchange 2010 выполните следующую команду, чтобы задать PublicFolderMigrationComplete для свойства значение False.

    Set-OrganizationConfig -PublicFolderMigrationComplete $false
    
  4. На сервере Exchange 2016 выполните следующую команду, чтобы удалить почтовые ящики общедоступных папок.

    Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes <ProxyMailbox1>,<ProxyMailbox2>,...,<ProxyMailboxN>
    

    Дополнительные сведения об удаленных почтовых ящиках общедоступных папок, которые необходимо использовать с помощью этой команды, см. в статье Настройка устаревших общедоступных папок, в которых почтовые ящики пользователей находятся на серверах Exchange 2013.