Bạn đang gặp rắc rối với Exchange Online hoặc môi trường Hybrid Exchange? Các lỗi đồng bộ, vấn đề di chuyển hộp thư, hay sự cố về chính sách lưu giữ có thể gây gián đoạn hoạt động của bạn. Bài viết này cung cấp một hướng dẫn chuyên sâu, dễ hiểu để giúp bạn chẩn đoán và giải quyết các vấn đề thường gặp, đảm bảo hệ thống email của bạn hoạt động trơn tru. Hãy cùng khám phá những giải pháp hiệu quả để đối phó với những thách thức phức tạp trong Exchange Online và Hybrid.
Di chuyển hộp thư lên Exchange Online hoặc giữa các tenant có thể gặp nhiều trở ngại. Một trong số đó là lỗi **"identity is not unique"** (ID không duy nhất). Lỗi này thường xảy ra khi có sự xung đột giữa các đối tượng trong Active Directory hoặc Azure Active Directory.
Để xác định nguyên nhân gốc rễ, hãy bắt đầu bằng cách kiểm tra đồng bộ hóa đối tượng Azure AD bằng PowerShell:
Thông thường, bạn sẽ thấy một thông báo lỗi tương tự như: `The value “
Để khắc phục, bạn cần xác định các đối tượng gây ra xung đột. Sử dụng các lệnh PowerShell sau:
Nếu bạn cố gắng xóa đối tượng bị xóa mềm bằng lệnh `Get-MailUser -Identity
Lưu ý quan trọng: Không thể loại trừ hộp thư lưu trữ khỏi chính sách lưu giữ khi nó chỉ liên kết với một đối tượng mail user, không phải mailbox.
Trong tình huống này, giải pháp khả thi nhất là liên hệ với bộ phận hỗ trợ của Microsoft O365. Cung cấp cho họ tất cả thông tin thu thập được trong quá trình điều tra. Quá trình này có thể mất thời gian (khoảng 15 ngày làm việc trong trường hợp được đề cập), nhưng cuối cùng, đội ngũ kỹ thuật của Microsoft sẽ xóa các đối tượng gây xung đột.
Khi sáp nhập các công ty, việc thêm các địa chỉ email cũ của công ty bị sáp nhập làm alias cho người dùng hiện tại là một yêu cầu phổ biến. Trong môi trường Hybrid Exchange, quy trình này cần được thực hiện cẩn thận để đảm bảo đồng bộ hóa chính xác giữa on-premise và Exchange Online.
Sau khi tên miền được thêm và đồng bộ hóa, các alias sẽ hiển thị trong trung tâm quản trị Microsoft 365.
Việc quản lý chính sách lưu giữ (Retention Policy) và Litigation Hold có thể trở nên phức tạp, đặc biệt khi chúng ảnh hưởng đến khả năng xóa email của người dùng. Các vấn đề thường gặp bao gồm việc người dùng không thể xóa email do Litigation Hold hoặc quota hộp thư "Recoverable Items" đã đầy.
Nếu hộp thư có Retention Policy, bạn cần loại trừ người dùng khỏi chính sách đó bằng cách sử dụng các lệnh `Connect-IPPSSession`, `Get-RetentionCompliancePolicy`, và `Set-RetentionCompliancePolicy`.
Trong môi trường Hybrid Exchange, luồng thư (mail flow) giữa on-premise và Exchange Online có thể gặp sự cố. Một vấn đề thường gặp là thư bị trả lại (bounce-back) và bị đánh dấu là phishing.
Nguyên nhân có thể là do Enhanced Filtering (EF) đang chặn các thư từ IP công cộng của môi trường on-premise. Để khắc phục, bạn cần thêm IP này vào thuộc tính `EFSkipIPs` của inbound connector trong Exchange Online.
Sau khi thực hiện các thay đổi, hãy đợi khoảng 15 phút để các cài đặt có hiệu lực.
Các cấu hình không chính xác hoặc bị bỏ qua có thể dẫn đến lỗi khiến quá trình cung cấp hộp thư không thành công. Một lỗi như vậy, thường gặp trong Trung tâm quản trị Microsoft, được thể hiện bằng thông báo: “Exchange Online: Đã xảy ra lỗi không xác định. Tham khảo GUID ID tương quan”. Bài viết này sẽ giúp bạn hiểu cách xác định nguyên nhân của lỗi này và cung cấp các bước để giải quyết nó.
MSOL Module sẽ không khả dụng vô thời hạn, vì vậy điều cần thiết là chuyển sang sử dụng Graph API. Hiện tại, chi tiết lỗi có sẵn trong phiên bản beta của Graph API. Thật không may, lệnh Get-MgBetaUser không trả về đầy đủ thông tin lỗi, yêu cầu chúng ta sử dụng Invoke-WebRequest để tìm nạp chi tiết.
Hãy xem script sau:
# Define your Azure AD application details $tenantId = "Get you Tenant ID" #Change This value $clientId = "Create an App Regisration with User.Read.all" #Change This value $clientSecret = "Secure your key" #Change This value $scope = "https://graph.microsoft.com/.default" # Build the token request URI $tokenRequestUri = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" # Define the request body $body = @{ grant_type = "client_credentials" scope = $scope client_id = $clientId client_secret = $clientSecret } # Make the token request $response = Invoke-RestMethod -Method Post -Uri $tokenRequestUri -ContentType "application/x-www-form-urlencoded" -Body $body # Extract the access token $accessToken = $response.access_token # Define the authorization header $headers = @{ "Authorization" = "Bearer $accessToken" "Content-Type" = "application/json" } # Define the request URI $requestUri = "https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,serviceProvisioningErrors" $response = Invoke-WebRequest -Uri $requestUri -Headers $headers -Method Get # Parse the response $result = $response.Content | ConvertFrom-Json $allUsers=@() if (!($result.'@odata.nextLink')){ $allUsers += $result.value | Where-Object {$_.serviceProvisioningErrors -notlike $null} } else { do { write-host "Loading Page" -ForegroundColor Green $response = Invoke-WebRequest -Uri $result.'@odata.nextLink' -Headers $headers -Method Get $result = $response.Content | ConvertFrom-Json $allUsers += $result.value | Where-Object {$_.serviceProvisioningErrors -notlike $null} # Update the request URI to the next link, if it exists $uri = $result.'@odata.nextLink' Write-host "Getting to the next page.. Please" -ForegroundColor Green } while ($uri -ne $null) } $allUsers | select userPrincipalName, @{n="Errors";e={([xml]$_.serviceProvisioningErrors.errorDetail).ServiceInstance.ObjectErrors.ErrorRecord.ErrorDescription } }
Kết quả của script trên là một danh sách chứa tên người dùng và thông báo lỗi
Việc quản lý và khắc phục sự cố trong Exchange Online và môi trường Hybrid Exchange đòi hỏi kiến thức chuyên sâu và khả năng xử lý tình huống linh hoạt. Bằng cách nắm vững các quy trình, công cụ và giải pháp được trình bày trong bài viết này, bạn có thể tự tin đối phó với những thách thức phức tạp và đảm bảo hệ thống email của bạn hoạt động ổn định và hiệu quả.
Bài viết liên quan