為什麼我們使用 Enable-RemoteMailbox 的使用者的 ExchangeGuid 為空?

為什麼我們使用 Enable-RemoteMailbox 的使用者的 ExchangeGuid 為空?

我們採用混合設置,在使用者建立過程腳本中建立 AD 對象,然後連接到本機 Exchange 並執行Enable-RemoteMailbox -Identity $UserName -RemoteRoutingAddress $RemoteRoutingAddress以在 Office 365 中啟用使用者信箱。

我最近注意到的是,如果我們運行它,它將返回為.當我在連接到 O365 的情況下運行時,它會給我正確的.此問題僅發生在使用 建立的郵箱中,我是否遺漏了導致本機 Exchange 伺服器看到郵件信箱為空的內容?Get-RemoteMailbox -Identity "[email protected]" | FL *ExchangeGuid*00000000-0000-0000-0000-000000000000ExchangeGuidGet-MailboxExchangeGuidEnable-RemoteMailboxExchangeGuid

我編寫了以下腳本來解決此問題:

$ProblemMailboxes = Get-RemoteMailbox * | Where-Object {$_.ExchangeGuid -eq "00000000-0000-0000-0000-000000000000"} | Sort-Object Name
foreach($Mailbox in $ProblemMailboxes) {
    $ExchangeGuid = Get-OnlineMailbox -Identity $Mailbox.UserPrincipalName | Select-Object ExchangeGuid -ExpandProperty ExchangeGuid
    Set-RemoteMailbox -Identity $Mailbox.UserPrincipalName -ExchangeGuid $ExchangeGuid
}

但我寧願將來不必這樣做並修復我們創建用戶時缺少的問題或步驟。

答案1

我也有這個問題。

解決方法。

現在我必須連接到 o365 執行 get-mailbox user |fl Exchangeguid

複製 GUID

轉到本地混合並運行

set-remotemailbox user -exchangeguid 貼上 GUID

然後允許使用者連接到本地郵箱。

我也有興趣知道這個問題的解決方法...

答案2

如果郵箱是直接在 Exchange Online 中建立的,則會發生這種情況,因為 Enable-RemoteMailbox 命令不會填入此屬性;它也不包含在 Azure AD Connect 寫回屬性中。 MS 肯定可以改進這個過程,但仍然沒有。

我找到了一個腳本,用於將 ExchangeGuid 從 Exchange Online 複製回 On Prem。這對我有用!

https://gallery.technet.microsoft.com/office/Sync-Exchange-Online-646b88ab#content

我在將憑證儲存在 XML 中時遇到了問題,因此我只是將 2 個憑證變數變更為 = Get-Credential,而不是尋找 XML 檔案。

我修改的兩行是:

$ExchCred = Import-Clixml C:\scripts\creds\ExchScripts.xml 

$ExchCred = Get-Credential

並且

$cred = Import-Clixml C:\scripts\creds\ExchScripts.xml

$cred = Get-Credential

顯然,每次運行腳本時都會提示輸入憑證,這對於一次性使用來說是可以的。如果您希望將其作為計劃任務,您最好讓憑證匯出部分正常運作。另外,請確保在用於對 Exchange Online 進行驗證的帳戶上停用 MFA。停用後,將其靜置 15 分鐘以確保在 MS 伺服器上完全複製。儘管我的系統立即停止提示 MFA,但還是花了一段時間才允許存取。

希望這對某人有幫助。我花了很長時間才找到解決方案。

答案3

指南在混合環境中匹配的唯一真正可靠的方法是在本地建立郵箱,運行 aad connect,然後在同步完成時將郵箱移至 O365。使用啟用遠端郵箱時,GUID 很少匹配,因為 guid 不作為 AD 屬性存在,因為它不是由 Exchange 建立的。

答案4

這是混合郵箱上 ExchangeGuid 和 ArchiveGuid 的已知問題

以下 PowerShell 將會尋找所有出現這種情況的信箱並為您解決:

# Connect to on-premises Exchange server PowerShell - insert your server's name in relevant place
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://**your on-premises Exchange server**/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking -Prefix EPS # Import all cmdlets with 'EPS' prefix to avoid Exchange Online clash

# Connect to Exchange Online PowerShell
Connect-ExchangeOnline

# Get all hybrid mailboxes with a blank ExchangeGuid or ArchiveGuid
$EPSRemoteMailboxes = Get-EPSRemoteMailbox -Filter "ExchangeGuid -eq '$([GUID]::Empty)'" -ResultSize Unlimited
$EPSArchiveRemoteMailboxes = Get-EPSRemoteMailbox -Archive -Filter "ArchiveGuid -eq '$([GUID]::Empty)'" -ResultSize Unlimited

foreach ($EPSRemoteMailbox in $EPSRemoteMailboxes) {
    $EXOMailbox = Get-Mailbox -Identity $EPSRemoteMailbox.UserPrincipalName 
    $EPSRemoteMailbox | Set-EPSRemoteMailbox -ExchangeGuid $EXOMailbox.ExchangeGuid
}
                
foreach ($EPSArchiveRemoteMailbox in $EPSArchiveRemoteMailboxes) {
    $EXOArchiveMailbox = Get-Mailbox -Identity $EPSArchiveRemoteMailbox.UserPrincipalName
    $EPSArchiveRemoteMailbox | Set-EPSRemoteMailbox -ArchiveGuid $EXOArchiveMailbox.ArchiveGuid
}

https://learn.microsoft.com/en-us/exchange/troubleshoot/move-mailboxes/migrationpermanentException-when-moving-mailboxes https://learn.microsoft.com/en-us/exchange/troubleshoot/administration/validation-errors-for-mailbox-archive-guid

相關內容