Tìm kiếm trang web

Di chuyển thư mục chung Exchange 2016 sang Office 365


Nhiều khách hàng đang chạy trong môi trường kết hợp Exchange nơi họ có hộp thư trong Exchange Online và Exchange tại chỗ và nhiều khách hàng của tôi có Exchange 2016 chạy tại chỗ. Không nhiều khách hàng vẫn có Thư mục chung trong Exchange tại chỗ nhưng chúng vẫn ở đó. Blog này giải thích các bước để di chuyển Thư mục công cộng hiện đại từ Exchange 2016 sang Exchange Online, nhưng blog này cũng hợp lệ cho các Thư mục công cộng hiện đại trong Exchange 2013 và Exchange 2019. Nếu bạn vẫn đang chạy Exchange 2010 và bạn muốn di chuyển Công khai (cũ) của mình Các thư mục sang Exchange Online, hãy làm theo các bước trong bài viết này của Microsoft: Sử dụng di chuyển hàng loạt để di chuyển các thư mục chung cũ sang Microsoft 365 hoặc Office 365.

Lưu ý. Đây là một bài đọc dài. Đây cũng là một dự án dài, quá trình chuẩn bị mất vài tuần, quá trình đồng bộ hóa mất vài ngày, quay lại sau lần thử đầu tiên để hoàn tất quá trình di chuyển và bắt đầu lại từ đầu với việc khắc phục các sự cố không mong muốn. Khi di chuyển Thư mục chung từ Exchange 2016 sang Exchange Online, hãy dành thời gian và thực hiện đúng!

Khi nào cần di chuyển Thư mục chung của bạn sang Exchange Online

Truy cập Thư mục Công cộng tại nhiều cơ sở chỉ là một chiều. Hộp thư trong Exchange Online có thể truy cập Thư mục chung trong Exchange tại chỗ nhưng không thể truy cập theo cách khác. Vì vậy, hộp thư trong Exchange tại chỗ không thể truy cập Thư mục chung trong Exchange Online. Bạn chỉ nên di chuyển Thư mục chung sang Exchange Online sau khi đã di chuyển tất cả hộp thư của người dùng sang Exchange Online.

Lưu ý. Tôi cố tình nói “hộp thư người dùng” trong ngữ cảnh này, bạn vẫn có thể có hộp thư trong Exchange tại chỗ cho các ứng dụng, tài khoản dịch vụ, thiết bị, v.v. mà không cần truy cập Thư mục chung.

Yêu cầu

Cần phải đáp ứng các yêu cầu tại chỗ sau trước khi có thể bắt đầu di chuyển Thư mục công cộng sang Exchange Online:

  • Trao đổi 2016 CU4 hoặc cao hơn (theo ý kiến của tôi thì không có gì phải đắn đo)
  • Quản trị viên Exchange cần phải là thành viên của nhóm vai trò Quản lý tổ chức (trong Exchange Online và Exchange 2016)
  • Thư mục công cộng cần có kích thước nhỏ hơn 25 GB
  • Quá trình di chuyển hộp thư người dùng cần phải hoàn tất trước khi quá trình di chuyển Thư mục Công cộng bắt đầu
  • Việc di chuyển cần được thực hiện bằng Exchange PowerShell. Tùy chọn Di chuyển thư mục chung không có sẵn trong Trung tâm quản trị Exchange
  • Tất cả dữ liệu Thư mục chung phải được di chuyển trong một đợt di chuyển duy nhất
  • Xác minh xem DefaultPublicFolderAgeLimit có được định cấu hình ở cấp tổ chức hay không hoặc liệu bạn có bất kỳ AgeLimit nào được định cấu hình cho các Thư mục chung riêng lẻ hay không để ngăn chặn việc tự động xóa nội dung

e, các đối tượng hệ thống Exchange (như các đối tượng Thư mục chung hỗ trợ thư) có thể nằm ở nhiều vị trí vì những vị trí này đã thay đổi qua nhiều năm (với các phiên bản Exchange khác nhau). Đôi khi những đối tượng này có thể được tìm thấy ở miền gốc nhưng cũng có thể ở miền con. Nếu bạn đang sử dụng môi trường Active Directory có nhiều miền, hãy đảm bảo bạn mở rộng phạm vi của Powershell bằng lệnh sau:

[PS] C:\> Set-ADServerSetting -ViewEntireForest $True

Các bước di chuyển

Di chuyển Thư mục Công cộng từ Exchange 2016 sang Exchange Online bao gồm các bước sau:

  1. Tải xuống tập lệnh di chuyển
  2. Chuẩn bị cho cuộc di cư
  3. Tạo các tệp CSV
  4. Tạo hộp thư Thư mục Công cộng trong Exchange Online
  5. Bắt đầu yêu cầu di chuyển
  6. Khóa thư mục công cộng trong Exchange 2016
  7. Hoàn tất quá trình di chuyển Thư mục Công cộng
  8. Kiểm tra và mở khóa Thư mục chung trong Exchange Online
  9. Hoàn tất quá trình di chuyển trong Exchange 2016

Các bước này sẽ được thảo luận trong các phần sau.

1. Tải xuống tập lệnh di chuyển

Tải xuống tập lệnh xác thực phía nguồn hoặc di chuyển trước từ trang web của Microsoft https://aka.ms/ssv2 (SourceSideValidations.ps1) và tập lệnh di chuyển Thư mục chung (https://www.microsoft.com/en-us/download/details .aspx?id=54855). Lưu trữ các tập lệnh trên máy chủ Exchange trong thư mục C:\PFScripts.

Tập lệnh SourceSideValidations.ps1 thực hiện kiểm kê tất cả các Thư mục Công cộng trong tổ chức Exchange và báo cáo mọi sự cố được tìm thấy và có thể gây ra sự cố trong quá trình di chuyển Thư mục Công cộng.

Kết quả của tập lệnh này được viết trong SourceSideValidations.csv trong thư mục PFScripts và chứa nội dung như thế này:

ResultTypeSeverityCountAction
TotalItemSizeError2Items should be deleted from these folders until the folder size is less than 25 GB.
EmptyFolderInformation138Folders contain no items and have only empty subfolders. These will not cause a migration issue, but they may be pruned if desired.
SpecialCharactersError12Folders have characters @, /, or \ in the folder name. These folders should be renamed prior to migrating. The following command can be used:

Import-Csv .\ValidationResults.csv |
? ResultType -eq SpecialCharacters |
% {
$newName = ($_.ResultData -replace “@|/|\”, ” “).Trim()
Set-PublicFolder $_.FolderEntryId -Name $newName
}
OrphanedMPFError37Mail public folders are orphaned. They exist in Active Directory but are not linked to any public folder. Therefore, they should be deleted. After confirming the accuracy of the results, you can delete them manually, or use a command like this to delete them all:
Import-Csv .\ValidationResults.csv |
? ResultType -eq OrphanedMPF |
% {
$folder = <see below>
$parent = ([ADSI]”$($folder.Parent)”)
$parent.Children.Remove($folder)
}
OrphanedMPFDuplicateError3Mail public folders point to public folders that point to a different directory object. These should be deleted. Their email addresses may be merged onto the linked object. After confirming the accuracy of the results, you can delete them manually, or use a command like this:
Import-Csv .\ValidationResults.csv |
? ResultType -eq OrphanedMPFDuplicate |
% {
$folder = <see below>
$parent = ([ADSI]”$($folder.Parent)”)
$parent.Children.Remove($folder)
}
OrphanedMPFDisconnectedError1Mail public folders point to public folders that are mail-disabled.
These require manual intervention. Either the directory object should be deleted, or the folder should be mail-enabled, or both.
Open the ValidationResults.csv and filter for ResultType of OrphanedMPFDisconnected to identify these folders. The
FolderIdentity provides the DN of the mail object. The FolderEntryId provides the EntryId of the folder.
BadpermissionError89Invalid permissions were found. These can be removed using the RemoveInvalidPermissions switch as follows:
.\SourceSideValidations.ps1 -RemoveInvalidPermissions

Ghi chú. Trong bảng ở hàng 4 và hàng 5 này có biến thư mục $. Tôi đã có thể thêm lệnh PowerShell vào đó, vì vậy đây là lệnh. Vui lòng thay thế khi cần thiết:

$Folder = ([ADSI]("LDAP://$($_.FolderIdentity)"))

Bên cạnh việc báo cáo vấn đề, cột cuối cùng còn báo cáo các giải pháp về cách giải quyết vấn đề. Những điều này (cũng) được thảo luận trong phần tiếp theo.

2. Chuẩn bị cho việc di chuyển

Tập lệnh SourceSideValidations.ps1 là điểm khởi đầu tốt vì nó trả về một số vấn đề tiềm ẩn khi di chuyển và những vấn đề này cần được khắc phục trước khi bạn có thể bắt đầu di chuyển:

  • TotalItemSize rất dễ sửa. Hãy nhớ rằng kích thước cho mỗi thư mục, vì vậy nếu bạn có một thư mục lớn chứa 40GB dữ liệu chẳng hạn, bạn có thể tạo 3 thư mục con và di chuyển 10GB dữ liệu trong mỗi thư mục con. Vấn đề đã được giải quyết ?
  • EmptyFolder mang tính thông tin. Bạn có thể di chuyển chúng sang Exchange Online hoặc quyết định loại bỏ chúng trước khi di chuyển.
  • Tên Thư mục Công cộng chứa dấu gạch chéo ngược hoặc dấu gạch chéo lên không được hỗ trợ trong Exchange Online. Những điều này cũng được báo cáo bởi tập lệnh SourceSideValidations.ps1. Để kiểm tra Thư mục chung có chứa các ký tự này, bạn có thể sử dụng các lệnh sau trong Exchange PowerShell tại chỗ:
[PS] C:\> Get-PublicFolder -Recurse -ResultSize Unlimited | Where {$_.Name -like "*\*" -or $_.Name -like "*/*"} | Format-List Name, Identity, EntryId

Để loại bỏ các ký tự không hợp lệ này, bạn có thể sử dụng các lệnh sau trong Exchange PowerShell tại chỗ:

Import-Csv .\ValidationResults.csv | ? ResultType -eq SpecialCharacters |
% {
  $newName = ($_.ResultData -replace "@|/|\\", " ").Trim()
  Set-PublicFolder $_.FolderEntryId -Name $newName
}
  • Kiểm tra các thư mục mồ côi, các thư mục mồ côi trùng lặp và các thư mục mồ côi bị ngắt kết nối. Bạn có thể thử tắt Thư mục chung tương ứng qua thư và kích hoạt lại Thư mục chung. Tôi cũng đã thấy các tình huống trong đó đối tượng Exchange trong Active Directory (trong bộ chứa Microsoft Exchange System Objects) đã bị xóa bằng ADSI Edit.
  • Xác nhận địa chỉ Email SMTP và Miền được chấp nhận trong Exchange tại chỗ và Exchange Online khớp nhau. Rất có thể trường hợp này xảy ra vì tất cả hộp thư (người dùng) đã được di chuyển nhưng có thể xảy ra trường hợp địa chỉ email được đặt trên Thư mục chung trong Exchange 2016 với miền không xác định trong Exchange Online (ví dụ: contoso.local).
  • Ngoài ra, hãy đảm bảo các thư mục công cộng của bạn được đóng dấu địa chỉ email trực tuyến của Microsoft, như folder@contoso.mail.onmicrosoft.com. Điều này giúp cuộc sống dễ dàng hơn nhiều sau khi di chuyển, khi bạn vẫn có ứng dụng cục bộ đang cố gắng gửi email đến các thư mục công cộng.
  • Tạo Miền được chấp nhận với một tên nổi tiếng để tránh thất lạc thư trong giai đoạn chuyển đổi DNS. Để thực hiện việc này, hãy thực thi lệnh sau trong Exchange PowerShell tại chỗ:
[PS] C:\> New-AcceptedDomain -Name PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99 -DomainName "contoso.mail.onmicrosoft.com" -DomainType InternalRelay
  • Tạo ảnh chụp nhanh về môi trường Thư mục Công cộng hiện có trong Exchange 2016. Điều này có thể hữu ích khi kiểm tra xem quá trình di chuyển Thư mục Công cộng có thành công hay không. Bốn lệnh sau sẽ xuất Thư mục Công cộng, Thống kê Thư mục Công cộng, quyền của Thư mục Công cộng và Thư mục Công cộng hỗ trợ thư. Xin lưu ý rằng việc này có thể mất một khoảng thời gian đáng kể, tùy thuộc vào số lượng Thư mục Công cộng trong tổ chức của bạn.
[PS] C:\> Get-PublicFolder -Recurse -ResultSize Unlimited | Export-CliXML OnPrem_PFStructure.xml
[PS] C:\> Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML OnPrem_PFStatistics.xml
[PS] C:\> Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission | Select-Object Identity,User,AccessRights -ExpandProperty AccessRights | Export-CliXML OnPrem_PFPerms.xml
[PS] C:\> Set-ADServerSettings -ViewEntireForest $True
[PS] C:\> Get-MailPublicFolder -ResultSize Unlimited | Export-CliXML OnPrem_MEPF.xml
  • Trong Azure AD Connect có tùy chọn đồng bộ hóa Thư mục công cộng Exchange Mail với Azure AD, như minh họa trong ảnh chụp màn hình sau:

Tính năng này chỉ được sử dụng cho Chặn cạnh dựa trên thư mục (DBEB) để thư bên ngoài dành cho Thư mục công cộng không bị DBEB chặn. DBEB tự động sẵn có khi người nhận sử dụng Exchange Online, do đó không cần phải đồng bộ hóa tính năng này bằng Azure AD Connect. Bỏ chọn Thư mục công cộng Exchange Mail trong Tính năng tùy chọn trong Azure AD Connect.

Lưu ý. Khi các vấn đề được giải quyết và đáp ứng tất cả các điều kiện tiên quyết, hãy chạy lại tập lệnh SourceSideValidations.ps1 để xem liệu có còn vấn đề nào được trả về hay không.

3. Tạo tệp .CSV

Nếu bạn đã thực hiện tất cả các bước tiên quyết, đã đến lúc tạo tệp CSV để chuẩn bị di chuyển Thư mục chung thực sự sang Exchange Online.

Tệp CSV đầu tiên là tệp ánh xạ kích thước Tên tới Thư mục. Tệp này chứa ba cột: FolderSize, DeletedItemSize và Foldername. Để tạo tệp này, hãy thực thi tập lệnh Xuất-ModernPublicFolderStatistics.ps1 với tùy chọn tên tệp, như sau:

[PS] C:\PFScripts\> .\Export-ModernPublicFolderStatistics.ps1 On_Prem_Stats.csv

CSV thứ hai được tạo bằng tập lệnh ModernPublicFolderToMailboxMapGenerator.ps1. Tập lệnh này tạo ánh xạ giữa các Thư mục chung từ bước trước tới các hộp thư trong Exchange Online. Đối với đầu vào, tập lệnh này lấy tệp CSV từ bước trước đó, cùng với kích thước hộp thư Thư mục Công cộng tối đa và hạn ngạch mục có thể phục hồi hộp thư tối đa.

Kích thước hộp thư tối đa theo mặc định là 100GB, nhưng bạn nên sử dụng 50GB ở đây để dự đoán sự phát triển trong tương lai của Thư mục Công cộng trong hộp thư này. Kích thước được đề xuất cho hạn ngạch mục có thể phục hồi là 15 GB.

Lệnh để thực thi tập lệnh này giống như thế này:

[PS] C:\> PFScripts\ .\ModernPublicFolderToMailboxMapGenerator.ps1 -MailboxSize 50GB -MailboxRecoverableItemSize 15GB -ImportFile On_Prem_Stats.csv -ExportFile PFMapping.csv

Khi nhìn vào file đầu ra bạn sẽ chỉ thấy hai cột: TargetMailbox và FolderPath. TargetMailbox hiển thị các hộp thư Thư mục Công cộng sẽ được tạo. Các hộp thư Thư mục Công cộng này có tên chung, như Mailbox1, Mailbox2, Mailbox3, v.v. Bạn có thể thay đổi tên hộp thư Thư mục Công cộng trong tệp CSV thành tên nào đó phù hợp hơn với môi trường của bạn, ví dụ: PFMailbox1, PFMailbox2, PFmailbox3, v.v.

4. Tạo hộp thư Public Folder trong Exchange Online

Khi tất cả thông tin đã được thu thập, hộp thư Thư mục Công cộng có thể được tạo. Một hộp thư Thư mục Công cộng sẽ được sử dụng cho phân cấp Thư mục Công cộng (đây sẽ là hộp thư chính và hộp thư đầu tiên trong tệp CSV đã được tạo trước đó) và các hộp thư khác được sử dụng để lưu trữ nội dung Thư mục Công cộng.

Để tạo hộp thư Thư mục chung, hãy sử dụng các lệnh sau trong Exchange Online (!) PowerShell:

$PFMappings = Import-Csv C:\PFScripts\PFMapping.csv
$PrimaryMailboxName = ($PFMappings | Where-Object FolderPath -eq "\").TargetMailbox
New-Mailbox -HoldForMigration:$True -PublicFolder -IsExcludedFromServingHierarchy:$False $PrimaryMailboxName
($PFMappings | Where-Object TargetMailbox -ne $PrimaryMailboxName).TargetMailbox | Sort-Object -Unique | ForEach-Object { New-Mailbox -PublicFolder -IsExcludedFromServingHierarchy:$False $_}

Có thể một số thông báo cảnh báo xuất hiện do sao chép AD trong Exchange Online như trong ảnh chụp màn hình sau. Chỉ cần đợi một lúc và các hộp thư Thư mục Công cộng này sẽ tự động hoạt động.

5. Bắt đầu yêu cầu di chuyển

Trước khi bắt đầu yêu cầu di chuyển, hãy bắt đầu đồng bộ hóa các thư mục chung hỗ trợ thư với Exchange Online. Trong dự án hiện tại của tôi, tôi không phải thực hiện việc này vì tập lệnh này đã chạy như một phần của cấu hình kết hợp (hộp thư trong Exchange Online, Thư mục chung trong Exchange 2016).

Nhưng để bắt đầu việc này, hãy chạy lệnh sau:

[PS] C:\PFScripts> .\Sync-ModernMailPublicFolders.ps1 -CsvSummaryFile:sync_summary.csv

Ghi chú. Xin lưu ý rằng bạn sử dụng phiên bản mới nhất của tập lệnh này. Phiên bản cũ hơn (trước tháng 6 năm 2022) không hỗ trợ Xác thực hiện đại và sẽ không thành công với lỗi Truy cập bị từ chối. Tôi đã viết blog về vấn đề này vài tháng trước: Sync-ModernMailPublicFolders.ps1 không thành công khi quyền truy cập bị từ chối.

Có thể các thông báo lỗi được hiển thị trên bảng điều khiển và nếu bạn có nhiều Thư mục Công cộng thì số lượng này cũng có thể khá nhiều (không may đã có ở đó), nhưng bạn có thể nhập tệp sync_summary.csv vào Microsoft Excel để phân tích chi tiết.

Để tạo yêu cầu di chuyển, chúng tôi cần thông tin xác thực nguồn của Quản trị viên PF, điểm cuối nơi MRS đang chạy, GUID của hộp thư phân cấp trong Exchange 2016 và tệp ánh xạ Thư mục Công cộng (PFMapping.csv) đã được tạo trong phần trước bước chân.

Thực hiện lệnh sau trong Exchange 2016 PowerShell. Sao chép giá trị của $HierarchyGUID vào (ví dụ) Notepad vì nó sẽ được sử dụng trong lệnh cuối cùng nơi tạo lô di chuyển thực tế.

[PS] C:\PFScripts> $HierarchyGUID = (Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid.GUID

Thực hiện lệnh sau trong Exchange Online PowerShell:

[PS] C:\PFScripts> $Source_Credential = Get-Credential Contoso\Administrator
[PS] C:\PFScripts> $Source_RemoteServer = "webmail.contoso.com"
[PS] C:\PFScripts> $Mapping = [System.IO.File]::ReadAllBytes('C:\PFScripts\PFMapping.csv')
[PS] C:\PFScripts> $PfEndpoint = New-MigrationEndpoint -PublicFolder -Name PublicFolderEndpoint -RemoteServer $Source_RemoteServer -Credentials $Source_Credential
[PS] C:\PFScripts> New-MigrationBatch -Name PublicFolderMigration -CSVData $Mapping -SourceEndpoint $PfEndpoint.Identity -SourcePfPrimaryMailboxGuid <HierarchyGUID> -NotificationEmails Administrator@contoso.com

Như được hiển thị trong ảnh chụp màn hình sau:

Lưu ý. Vui lòng dành chút thời gian giữa việc tạo các hộp thư Thư mục chung (đặc biệt là hộp thư phân cấp chính), lệnh New-MigrationEndpoint sẽ không thành công nếu không có đủ thời gian để sao chép Exchange Online nội bộ, gây ra thông báo lỗi như “không thể tìm thấy hộp thư ”.

Khi được tạo, bạn có thể bắt đầu yêu cầu di chuyển bằng lệnh sau trong Exchange Online Powershell:

[PS] C:\PFScripts> Start-MigrationBatch PublicFolderMigration

Khi lô di chuyển được bắt đầu, nó sẽ tạo ra một số Yêu cầu di chuyển Hộp thư Thư mục Công cộng, tùy thuộc vào số lượng Hộp thư Thư mục Công cộng. Trong ví dụ này, có 18 hộp thư Thư mục Công cộng và 18 yêu cầu di chuyển riêng lẻ sẽ được tạo như một phần của lô di chuyển. Phải mất tới 4 giờ trước khi tất cả các yêu cầu di chuyển được tạo. Hãy lưu ý điều này vì ban đầu bạn sẽ nghĩ có điều gì đó không ổn ?

Sử dụng các lệnh sau trong Exchange Online PowerShell để giám sát lô di chuyển và các yêu cầu di chuyển riêng lẻ:

[PS] C:\PFScripts> Get-PublicFolderMailboxMigrationRequest
[PS] C:\PFScripts> Get-PublicFolderMailboxMigrationRequestStatistics
[PS] C:\PFScripts> Get-MigrationBatch -Identity PublicFolderMigration

Những gì cá nhân tôi làm để biết thêm chi tiết là thêm một số tùy chọn khác và sử dụng tính năng bảng định dạng, như sau:

[PS] C:\PFScripts\> Get-PublicFolderMailboxMigrationRequest | Get-PublicFolderMailboxMigrationRequestStatistics | Select TargetMailbox,Status,StatusDetail,ItemsTransferred,BytesTransferred,BytesTransferredPerMinute,PercentComplete | ft -a

Nếu vì lý do nào đó, yêu cầu di chuyển của bạn không thành công trong lô di chuyển, bạn luôn có thể chạy lệnh Start-MigrationBatch -Identity PublicFolderMigration để tiếp tục lô.

Một vấn đề thú vị khác mà tôi gặp phải là PFMailbox1 giữ cấu trúc phân cấp, không đồng bộ hóa được với StatusDetail 'FailedOther'. Khi yêu cầu PublicFolderMailboxMigrationStatistics cho PFMailbox này, lỗi sau được trả về:

olderMappingFlags: InheritedInclude" could not be mail-enabled. The error is as follows: "No mail public folder was found in Active Directory with OnPremisesObjectId='dd887445-0b0a-447f-a6fc-889cc49ab16c' or LegacyExchangeDN='/CN=Mail Public Folder/CN=Version_1_0/CN=e71f13d1-0178-42a7-8c47-24206de84a77/CN=000000006F0ABC0AC0DF544387022DEA38DAE5840100F33760E70CFA4C489E930054C1EC880900038611485B0000'". This may indicate that mail public folderobjects in Exchange Online are out of sync with your Exchange deployment. You may need to rerun the script Sync-MailPublicFolders.ps1 on your source Exchange server to update mail-enabled public folder objects in Exchange Online Active Directory.

Quá trình đồng bộ hóa mất vài ngày (tôi đã bắt đầu vào thứ Ba và dự định hoàn tất vào cuối tuần tiếp theo) và trong thời gian đó, các Thư mục Công cộng hỗ trợ thư mới sẽ được tạo và đồng bộ hóa.

Để đồng bộ hóa lại tính năng này, hãy chạy lại tập lệnh Sync-ModernMailPublicFolders.ps1, đợi một thời gian (để sao chép trong Exchange Online) và bắt đầu lại lô di chuyển.

Hãy nhớ rằng cho đến thời điểm này, người dùng có thể tiếp tục làm việc giống như khi hộp thư của họ được di chuyển sang Exchange Online. Chỉ khi yêu cầu di chuyển được hoàn tất thì Thư mục công cộng mới không khả dụng.

6. Khóa thư mục công cộng trong Exchange 2016

Việc hoàn tất quá trình di chuyển Thư mục chung không khác gì khi di chuyển Hộp thư từ Exchange 2016 sang Exchange Online. Khi quá trình hoàn tất diễn ra, người dùng sẽ đăng xuất khỏi Thư mục chung, nội dung cuối cùng được di chuyển sang Exchange Online và các hộp thư Thư mục chung trong Exchange Online sẽ hoạt động. Tuy nhiên, chúng không tự động có sẵn cho người dùng, cần có một số bước bổ sung (bao gồm cả thử nghiệm).

Điều quan trọng cần lưu ý là quá trình hoàn tất di chuyển Thư mục Công cộng có thể mất nhiều thời gian, tùy thuộc vào số lượng thư mục, số lượng mục (bằng dữ liệu) và liệu có ACL bị hỏng trong Thư mục Công cộng nguồn hay không. Microsoft khuyến nghị nên lập kế hoạch ngừng hoạt động ít nhất 48 giờ trong quá trình hoàn tất quá trình di chuyển Thư mục Công cộng.

Để kiểm tra xem lô di chuyển Thư mục chung có được đồng bộ hóa thành công hay không (và do đó sẵn sàng hoàn tất), hãy sử dụng các lệnh sau trong Exchange Online PowerShell:

[PS] C:\PFScripts> Get-MigrationBatch -Identity PublicFolderMigration | ft *last*sync*
[PS] C:\PFScripts> Get-PublicFolderMailboxMigrationRequest | Get-PublicFolderMailboxMigrationRequestStatistics |ft targetmailbox,*last*sync*

Tốt nhất là LastSyncedDate trên lô di chuyển và LastSuccessfulSyncTimestamp trên từng công việc) phải nằm trong vòng 7 ngày qua như có thể thấy trong ảnh chụp màn hình sau. Nếu không, hãy kiểm tra các yêu cầu di chuyển Thư mục chung để xem tại sao nó không đồng bộ.

Nếu tất cả đều ổn, bạn có thể khóa Thư mục chung trong Exchange 2016 bằng cách thực hiện lệnh sau trong Exchange PowerShell:

[PS] C:\PFScripts> Set-OrganizationConfig -PublicFolderMailboxesLockedForNewConnections $true

Sau khi sao chép (Active Directory), bạn có thể kiểm tra xem Thư mục chung có chấp nhận kết nối mới nữa hay không bằng cách nhập lệnh sau trong Exchange PowerShell:

[PS] C:\PFScripts> Get-PublicFolder \

Nó sẽ tạo ra một thông báo lỗi cho biết “Không thể tìm thấy hộp thư thư mục công cộng” như trong ảnh chụp màn hình sau:

7. Hoàn tất quá trình di chuyển Thư mục Công cộng

Trước khi hoàn tất quá trình di chuyển Thư mục chung, bạn nên chạy lại tập lệnh SyncModernPublicFolders.sp1 để đảm bảo rằng Thư mục chung kích hoạt thư mới được tạo (hoặc tốt hơn là địa chỉ email của chúng) được đồng bộ hóa với Exchange Online.

[PS] C:\PFScripts> .\Sync-ModernPublicFolders.ps1 -CsvSummaryFile:Sync_Summary.csv

Và để hoàn thành đợt di chuyển:

[PS] C:\PFScripts> Complete-MigrationBatch PublicFolderMigration

Trạng thái lô di chuyển sẽ thay đổi từ Đã đồng bộ hóa thành Đang hoàn tất. Việc này có thể mất rất nhiều thời gian; Khuyến nghị của Microsoft là hãy tính đến 48 giờ cho việc này. Trong trường hợp của tôi, có 18 hộp thư Thư mục Công cộng được đồng bộ hóa. Thư mục Công cộng tại chỗ đã đóng cửa vào khoảng 10 giờ tối tối Thứ Sáu, nhưng sau 12 giờ, tất cả các Yêu cầu Hộp thư Thư mục Công cộng vẫn có trạng thái 'được đồng bộ hóa'. Nhưng khi yêu cầu chi tiết về lô di chuyển (Get-MigrationBatch | fl), thuộc tính TriggeredAction của lô di chuyển được đặt thành SyncAndComplete. Microsoft cũng cho biết có thể mất tới 24 giờ trước khi trạng thái của lô di chuyển và các yêu cầu di chuyển tương ứng thay đổi từ 'đã đồng bộ hóa' thành 'Đang hoàn thành'. Trong thời gian chờ đợi, bạn chỉ có thể đợi và kiểm tra lại sau mỗi vài giờ. Cuối cùng, trạng thái lô di chuyển sẽ thay đổi thành Đã hoàn thành.

Khi quá trình di chuyển hoàn tất, bạn có thể kiểm tra Thư mục chung trong Exchange. Để thực hiện việc này, hãy đặt cấu hình tài khoản người dùng với hộp thư Thư mục chung mặc định trong Exchange Online, bằng cách sử dụng lệnh sau trong Exchange Online PowerShell:

[PS] C:\PFScripts> Set-Mailbox -Identity <user> -DefaultPublicFolderMailbox PFMailbox1

Hộp thư Thư mục Công cộng mặc định là hộp thư PF đầu tiên (giữ cấu trúc phân cấp) được tạo ở bước trước bằng cách sử dụng tập lệnh ModernPublicFolderToMailboxMapGenerator.ps1.

Đảm bảo rằng bạn có thể xem hệ thống phân cấp PF, kiểm tra các quyền, tạo một số Thư mục Công cộng (và xóa chúng) và đăng một số nội dung vào Thư mục Công cộng (cả hai đều trực tiếp qua email). Trong lần thử đầu tiên của chúng tôi, quyền không thành công và chúng tôi phải khôi phục quá trình di chuyển. Phải mất hơn 6 tuần chúng tôi mới có thể thực hiện lần thử thứ hai (được rồi, tôi phải thừa nhận, đó là thời gian nghỉ lễ, nhưng vẫn….).

Khi kiểm tra thành công, hãy thay đổi Thư mục chung cho tất cả người dùng. Đây là cài đặt tổ chức và có thể được thay đổi bằng lệnh sau trong Exchange Online PowerShell:

[PS] C:\PFScripts> Set-OrganizationConfig -RemotePublicFolderMailboxes $Null -PublicFoldersEnabled Local

Có thể thư SMTP bị kẹt trong Hàng đợi SMTP trên máy chủ Exchange 2016 trong quá trình di chuyển. Để chuyển hướng các thư bị kẹt này, hãy chạy lệnh sau trên máy chủ Exchange 2016 của bạn:

[PS] C:\PFScripts> $Server=Get-TransportService;ForEach ($t in $server) {Get-Message -Server $t -ResultSize Unlimited| ?{$_.Recipients -like "*PF.InTransit*"} | ForEach-Object {Suspend-Message $_.Identity -Confirm:$False; $Temp="C:\ExportFolder\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp;Resume-message $_.Identity -Confirm:$false}}

Để đóng dấu các đối tượng Thư mục công cộng được kích hoạt bằng thư trong Active Directory bằng địa chỉ email bên ngoài trong Exchange Online (tức là @contoso.mail.onmicrosoft.com), hãy thực thi tập lệnh PowerShell sau trong Exchange 2016:

[PS] C:\PFScripts> .\SetMailPublicFolderExternalAddress.ps1 -ExecutionSummaryFile:mepf_summary.csv

Và bước cuối cùng cuối cùng, đặt Thư mục chung trong Exchange 2016 thành 'từ xa'. Đây là cài đặt tổ chức và có thể được đặt cấu hình bằng cách thực hiện lệnh sau trong Exchange 2016:

[PS] C:\PFScripts> Set-OrganizationConfig -PublicFolderMailboxesMigrationComplete:$true -PublicFoldersEnabled Remote

8. Xóa hộp thư thư mục công cộng

Sau một thời gian, nếu bạn chắc chắn 100% rằng mình sẽ không khôi phục quá trình di chuyển Thư mục Công cộng, thì Hộp thư Thư mục Công cộng trong Exchange 2016 có thể bị xóa. Hãy nhớ rằng, bước này là không thể đảo ngược!

Khôi phục quá trình di chuyển Thư mục Công cộng

Nếu vì lý do nào đó bạn phải quay lại quá trình di chuyển, bạn phải thực thi các lệnh PowerShell theo thứ tự ngược lại. Xin lưu ý rằng nếu bạn khôi phục quá trình di chuyển sau khi hoàn tất quá trình di chuyển, bạn sẽ mất tất cả thư được gửi đến Thư mục chung trong Exchange Online (trừ khi bạn sao chép thủ công tất cả các mục mới vào một vị trí trong hộp thư, điều này thực tế là không thể) .

Bước đầu tiên là mở khóa quá trình di chuyển Thư mục chung trong Exchange 2016 bằng cách sử dụng lệnh sau:

[PS] C:\> Set-OrganizationConfig -PublicFoldersLockedForMigration:$False

Xóa tất cả các hộp thư Thư mục chung trong Exchange Online bằng các lệnh Powershell sau:

PS] C:\> $hierarchyMailboxGuid = $(Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid
[PS] C:\> Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -ne $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force
[PS] C:\> Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -eq $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force

Nếu bạn gặp vấn đề với vấn đề này, hãy kiểm tra một trong các blog trước đây của tôi Nhiều người dùng Hộp thư khớp với danh tính “Mailbox1 ” (mà tôi gặp phải sau khi quay lại và cố gắng di chuyển lần thứ 2nd).

Bước cuối cùng là hoàn tác quá trình di chuyển trong cấu hình tổ chức của Exchange 2016 bằng lệnh sau:

[PS] C:\> Set-OrganizationConfig -PublicFolderMigrationComplete:$False

Bây giờ bạn có thể tiếp tục làm việc với Thư mục chung trong Exchange 2016.

Quyền gửi dưới dạng và gửi thay mặt

Một nhược điểm phổ biến là các quyền Gửi dưới dạng và Gửi thay mặt không được di chuyển sang Exchange Online. Nếu bạn đang sử dụng các quyền này, bạn phải xác định các Thư mục chung được áp dụng các quyền này bằng các lệnh sau:

[PS] C:\> Get-MailPublicFolder | Get-ADPermission | ?{$_.ExtendedRights -like "*Send-As*"}
[PS] C:\> Get-MailPublicFolder | ?{$_.GrantSendOnBehalfTo -ne "$null"} | Format-Table name,GrantSendOnBehalfTo

Để cấp các quyền này trong Exchange Online, hãy sử dụng các lệnh ví dụ sau trong Exchange Online PowerShell:

[PS] C:\> Add-RecipientPermission -Identity <Public Folder> -Trustee <User> -AccessRights SendAs
[PS] C:\> Set-MailPublicFolder -Identity <Public Folder> -GrantSendOnBehalfTo <User>

Rất có thể bạn sẽ có rất nhiều Thư mục Công cộng có các quyền này, trước tiên bạn phải xuất sang tệp CSV, sau đó là nhập tệp CSV và gán quyền trong Exchange Online.

Cho phép người dùng ẩn danh gửi email đến Thư mục công cộng hỗ trợ thư

Tôi không gặp phải vấn đề này sau khi di chuyển sang Exchange Online nhưng có thể bạn sẽ mất quyền của người dùng ẩn danh để gửi thư đến thư mục công cộng sau khi di chuyển. Để đảm bảo người dùng ẩn danh có thể gửi email đến Thư mục chung, hãy sử dụng lệnh sau trong Exchange Online PowerShell:

[PS] C:\> Add-PublicFolderClientPermission -Identity "\publicfoldername" -User "Anonymous" -AccessRights CreateItems

Bản tóm tắt

Trong blog này, tôi đã cố gắng viết lại trải nghiệm của mình với quá trình di chuyển Thư mục công cộng gần đây từ Exchange 2016 sang Exchange Online. Tùy thuộc vào cơ sở hạ tầng Thư mục chung của bạn, việc này có thể mất một khoảng thời gian đáng kể. Và ngay cả khi bạn làm mọi thứ đúng, vẫn có khả năng xảy ra sự cố và bạn phải bắt đầu lại từ đầu.

Mặc dù sau khi di chuyển, cơ sở hạ tầng Thư mục Công cộng là vấn đề của Microsoft và bạn chỉ có sẵn dịch vụ này, nhưng tôi vẫn khuyên bạn không nên di chuyển Thư mục Công khai của mình sang Exchange Online và hãy tìm giải pháp khác như Nhóm Microsoft 365, Hộp thư Dùng chung hoặc Nhóm Microsoft. Đó là giải pháp tốt hơn và ít nhất nó có nhiều bằng chứng trong tương lai hơn Thư mục công cộng.

Bài viết liên quan