對 Microsoft Teams 和 Exchange Server 互動問題進行疑難排解
本文提供針對 Microsoft Teams 和 Microsoft Exchange Server 之間發生的互動問題進行疑難排解的步驟。
快速入門
了解 Exchange 與 Teams 如何互動 (部分機器翻譯),以驗證版本與環境相容性。
徵狀
問題 1:代理人無法代表委派者排程 Teams 會議
其信箱由 Exchange 伺服器代管的使用者,將另一個使用者新增為管理 Outlook 行事曆的代理人。 使用 Outlook 的 Teams 增益集的代理人,無法代表委派者排程 Teams 會議,而且 Outlook 會傳回此錯誤訊息:
您似乎沒有為此帳戶排程會議的權限。 請連絡擁有者以取得權限,然後再試一次。
問題 2:當您嘗試使用 Teams 行事曆應用程式時遇到問題
發生下列任一問題:
- Teams 用戶端中未顯示「行事曆」圖示。
- 當您使用 Teams 桌面用戶端或 Web 用戶端時,Microsoft Teams 行事曆應用程式顯示「很抱歉,我們無法取得您的會議詳細資料」錯誤訊息。
Teams 行事曆應用程式需要透過 Exchange Web 服務 (EWS) 存取 Exchange 信箱。 Exchange 信箱可以是 Exchange 混合式部署範圍內的線上或內部部署信箱。
問題 3:當使用者參加 Outlook 行事曆會議時,Teams 顯示狀態停留在 [不在辦公室] 或不會顯示 [開會中]
於內部部署 Exchange 伺服器中託管其信箱的使用者已關閉 Outlook 用戶端自動回覆,但 Teams 顯示狀態對相同組織內的所有 Teams 用戶端顯示 [不在辦公室]。 這種情況可能會持續數天。
使用者正在參加 Outlook 行事曆會議,但 Teams 顯示狀態不會更新為 [開會中]。
先決條件
若要將 Microsoft Teams 服務與您的 Exchange Server 安裝整合,請確定您的本機 Exchange Server 環境符合下列需求:
Microsoft Teams 必須檢查信箱是在 Exchange Online 中託管,或為內部部署信箱。 然後,服務會據以決定存取信箱的位置。 若要讓 Teams 服務能夠透過 REST API 呼叫 Exchange Online 服務來檢查信箱位置,您必須執行 Exchange 混合式精靈來部署 Exchange 混合式環境,如使用混合式設定精靈建立混合式部署 (部分機器翻譯) 中所述。
若要讓 Microsoft Teams 能夠驗證內部部署 Exchange 環境以查詢信箱設定,您必須設定新的 Exchange OAuth 驗證通訊協定。 您最好透過執行 Exchange 混合式精靈來執行此動作,如設定 Exchange 和 Exchange Online 組織之間的 OAuth 驗證 (部分機器翻譯) 中所述。
執行 Exchange Server 的伺服器務必要將合作夥伴應用程式設定為商務用 Skype Online 的帳戶識別碼
00000004-0000-0ff1-ce00-000000000000
。 Teams 排程服務以及具有下列屬性的連結使用者帳戶,都會使用該識別碼:自 Exchange 通訊錄隱藏的帳戶。 其是停用的使用者帳戶,因此最佳做法是自通訊錄隱藏該帳戶。
該帳戶具有 UserApplication 的 Exchange 管理角色指派。
若要完成整合,請按照這篇文章 (部分機器翻譯) 中的步驟 1-5 進行。 步驟 1 通常用於 Exchange 混合式組態精靈,而本文中的步驟 2 則包含 ArchiveApplication 的角色指派。
注意
此需求只適用於 Teams 委派問題。
您應該設定網際網路對向防火牆或反向 Proxy 伺服器,將商務用 Skype Online 和 Microsoft Teams 的 URL 與 IP 位址範圍新增至允許清單,以讓 Microsoft Teams 存取執行 Exchange Server 的伺服器。 如需詳細詳細資訊,請參閱 Office 365 URL 和 IP 位址範圍的<商務用 Skype Online 及 Microsoft Teams>一節。
務必要有 Exchange 自動探索 V2,才能讓 Teams 服務針對位於 Exchange 伺服器中的使用者信箱執行未經驗證的探索。 Exchange Server 2013 累積更新 19 或更新版本完全支援自動探索 V2。 這足以讓 Teams 代理人正常工作。 不過,Teams 行事曆應用程式需要已安裝 Exchange Server 2016 累積更新 3 或更新版本。 因此,需要 Exchange Server 2016 累積更新 3 或更新版本,才能支援完整功能。
常見疑難排解步驟
注意
這些疑難排解步驟適用於上面列出的所有問題。
步驟 1:驗證自動探索服務可正常運作
Microsoft Teams 服務使用 Exchange 自動探索服務,以找到由執行 Exchange Server 的伺服器所發佈的 EWS URL。 若要確認自動探索程序可正常運作:
- 請使用者瀏覽到 Microsoft Remote Connectivity Analyzer。
- 輸入要求的資訊 (確保選取 [使用自動探索以偵測伺服器設定] 核取方塊)。
- 選擇 [執行測試] 按鈕以啟動自動探索測試。
如果測試失敗,您必須首先解決自動探索問題。
注意
對於 Teams 委派問題,委派人郵箱是要測試的目標郵箱。 對於 Teams 行事曆應用程式與 Teams 顯示狀態問題,受影響的使用者的信箱就是要測試的目標信箱。
步驟 2:驗證自動探索服務能否將自動探索要求路由到內部
在 Windows PowerShell 中執行下列命令:
Invoke-RestMethod -Uri "https://outlook.office365.com/autodiscover/autodiscover.json?Email=onpremisemailbox@contoso.com&Protocol=EWS&RedirectCount=5" -UserAgent Teams
注意
對於 Teams 委派問題,委派人郵箱是要測試的目標郵箱。 對於 Teams 行事曆應用程式與 Teams 顯示狀態問題,受影響的使用者的信箱就是要測試的目標信箱。
對於本地託管的郵箱,EWS URL 應指向本地外部 EWS。 輸出應如下所示:
協定 Url
-------- ---
如果此測試失敗,或者 EWS URL 不正確,請查看先決條件部分。 這是因為問題可能是由 Exchange 混合組態問題或阻止外部要求的防火牆或反向 Proxy 引起的。
步驟 3:驗證 Exchange OAuth 身份驗證協定是否已啟用並正常工作
若要驗證 Exchange OAuth 認證是否已啟用並正常工作,請按照在 Exchange 與 Exchange Online 組織之間設定 OAuth 身份驗證中所述的步驟執行Test-OAuthCOnnectivity
指令。
此外,執行 Microsoft Remote Connectivity Analyzer 中的 Free/Busy 連線測試。 如果要執行這項操作,請依照下列步驟執行:
選取 [Free/Busy] 測試以驗證 Office 365 郵箱可以存取本地信箱的忙/閒資訊,反之亦然。
必須透過將源郵箱電子郵件地址與目標郵箱電子郵件地址交換來執行此測試兩次。 這是因為每次執行都是單向的。 此測試不一定必須使用受影響的帳戶來執行。 可以使用一對本地郵箱和 Office 365 郵箱執行測試。
要詳細瞭解如何在 Office 365 中本地和 Exchange Online 的混合部署中解決忙/閒問題,請參閱此文章。
排除 Teams 委派的疑難問題
注意
這些故障排除步驟僅適用於問題 1。
步驟 1:驗證代理人是否已被授予 Editor 權限以存取委派人行事曆
在 Exchange 伺服器上開啟 Exchange 管理命令介面,然後執行下列 Exchange PowerShell 命令,以驗證 編輯者 存取權限是否已授與代理人:
Get-MailboxFolderPermission -Identity <delegator's UserPrincipalName>:\calendar | Format-List
檢查 [AccessRights] 參數是否包含 [Editor] 值。 如果沒有,請執行下列命令來授與權限:
Set-MailboxFolderPermission -Identity <delegator's UserPrincipalName>\Calendar -User <delegate's UserPrincipalName> -AccessRights Editor
或者,請委派人按照本文中的步驟重新設定 Outlook 用戶端中的委派。
步驟 2:驗證代理人是否已由委派人授予 "GrantSendOnBehalfTo"
執行下列命令,以驗證已經將 GrantSendOnBehalfTo 權限授與給代理人:
Get-Mailbox -Identity <delegator's UserPrincipalName> | Format-List *grant*
驗證 GrantSendOnBehalfTo 參數是否包含代理人的別名。 如果沒有,請執行下列命令來授與權限:
Set-Mailbox <delegator's UserPrincipalName> -Grantsendonbehalfto @{add="<delegate's UserPrincipalName>"}
或者,請委派人按照本文中的步驟重新設定 Outlook 用戶端中的委派。
步驟 3:驗證 Teams 未被阻止存取整個組織的 EWS。
執行下列 Exchange PowerShell 命令,檢查是否已為整個組織將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList:
Get-OrganizationConfig | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。 空值 EwsAllowList (EwsAllowList={}) 會讓所有使用者都無法存取 EWS。
注意
封鎖 EWS 也會造成 Teams 行事曆應用程式問題。 請參考驗證 Teams 行事曆應用程式是否已啟用。
確保將 [SchedulingService]** 作為 [EwsAllowList] 參數的陣列成員列出。 如果沒有,請執行下列命令加以新增:
Set-OrganizationConfig -EwsAllowList @{Add="*SchedulingService*"}
如果 EwsEnabled 參數設定為 False,則必須設定為 True 或 Null (空白)。 否則,也會禁止 Teams 服務存取 EWS。
步驟 4:驗證未阻止 Teams 存取 EWS 的委派人郵箱。
執行下列 Exchange PowerShell 命令,檢查是否已為代理人的信箱將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList:
Get-CasMailbox <delegator's UserPrincipalName> | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。
請務必將 *SchedulingService* 列為 EwsAllowList 參數的陣列成員。 如果沒有,請執行下列 Exchange PowerShell 命令加以新增:
Set-CASMailbox <delegator's UserPrincipalName> -EwsAllowList @{Add="*SchedulingService*"}
如果 EwsEnabled 參數設定為 False,則必須將其設定為 True。 否則,也會禁止 Teams 服務存取 EWS。
步驟 5:呈報問題
如果您確認本文中提到的先決條件或設定都沒有問題,請向 Microsoft 支援服務提交服務要求,並提供下列資訊:
- 委派人和代理人的 UserPrincipalName。
%appdata%\\microsoft\\teams\\meeting-addin
資料夾下的 [Teams 會議外接程式] 紀錄。- 問題重現時以 UTC 表示的時間。
- 從委派人的電腦上收集的 Teams 用戶端調試日誌。 有關如何收集這些紀錄的資訊,請參閱在對 Microsoft Teams 進行疑難排解時使用紀錄檔。
Teams 行事曆應用程式問題的疑難排解
注意
以下疑難排解步驟僅適用於問題 2。
步驟 1:驗證 Teams 行事曆應用程式是否已啟用
開啟 Microsoft Teams 管理中心,轉到 [使用者] 並針對受影響的使用者選擇 [檢視原則]。
選取指派給該使用者的 [應用程式設定原則]。 上面的示例使用了全域 (組織範圍預設值) 原則。 確認顯示的行事曆應用程式 (ID
ef56c0de-36fc-4ef8-b417-3d82ba9d073c
)。如果行事曆應用程式丟失,請還原它。 如需詳細資訊,請參閱管理 Microsoft Teams 中的應用程式設定原則。
步驟 2:驗證 Teams 升級共存模式允許 Teams 會議
開啟 Microsoft Teams 系統管理中心。
移至 [使用者],然後選取受影響的使用者。
驗證 [共存模式] 設定是否為 [商務用 Skype] 或 [商務用 Skype 搭配 Teams] 以外的值。
如果使用者共存模式設定為 [使用全組織設定],則表示將會使用預設租用戶共存模式。
跳到 [使用全組織設定],然後選擇 [Teams 升級]。
驗證預設 [共存模式設定] 是否為 [僅 Skype 業務] 或 [商務用 Skype 搭配 Teams] 以外的值。
步驟 3:驗證 Teams 未被阻止存取整個組織的 EWS。
執行下列 Exchange PowerShell 命令,檢查是否已為整個組織將參數 EwsApplicationAccessPolicy 設定為 EnforceAllowList:
Get-OrganizationConfig | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。
確定將 MicrosoftNinja/*_、 _*Teams/* 和 SkypeSpaces/*_ 列為 _ EwsAllowList 參數的陣列成員。 如果不是,請執行下列命令加以新增:
Set-OrganizationConfig -EwsAllowList @{Add="MicrosoftNinja/*","*Teams/*","SkypeSpaces/*"}
如果 EwsEnabled 參數設定為 False,則必須設定為 True 或 Null (空白)。 否則,也會禁止 Teams 服務存取 EWS。
步驟 4:驗證 Teams 未被阻止存取受影響使用者的 EWS。
執行下列 Exchange PowerShell 命令,檢查是否已為使用者信箱將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList:
Get-CASMailbox <UserPincipalName> | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。
確定將 MicrosoftNinja/*_、 _*Teams/* 和 SkypeSpaces/*_ 列為 _ EwsAllowList 參數的陣列成員。 如果不是,請執行下列 Exchange PowerShell 命令加以新增:
Set-CASMailbox <UserPincipalName> -EwsAllowList @{Add="MicrosoftNinja/*","*Teams/*","SkypeSpaces/*"}
如果 EwsEnabled 參數設定為 False,則必須將其設定為 True。 否則,Teams 服務也將被阻止存取 EWS。
步驟 5:驗證 Microsoft Teams 行事曆應用程式測試是否成功
- 請使用者前往 Microsoft Remote Connectivity Analyzer。
- 輸入要求的資訊。
- 選取 [執行測試] 按鈕,以啟動 Microsoft Teams 行事曆應用程式測試。
如果測試失敗,應嘗試解決問題並重新執行測試。
步驟 6:呈報問題
如果您確認本文中提到的先決條件和設定都沒有問題,請向 Microsoft 支援服務提交服務要求,並提供下列相關資訊:
- 受影響使用者的 UserPrincipalName 參數。
- 問題重現時以 UTC 表示的時間。
- Teams 用戶端偵錯記錄檔 有關如何收集這些紀錄的資訊,請參閱在對 Microsoft Teams 進行疑難排解時使用紀錄檔。
對 Teams 顯示狀態問題進行疑難排解
這些疑難排解步驟僅適用於問題 3。
步驟 1:確認是否已在公用網路上發佈內部部署 Exchange REST API 的 URL。
針對使用者的信箱,執行上述常見疑難排解步驟中的步驟 2,以尋找內部部署 Exchange EWS URL,然後以下列方法變更 URL 格式 (以 "/api" 取代 "/EWS/Exchange.asmx"):https://mail.contoso.com/EWS/Exchange.asmx
變成 https://mail.contoso.com/api
。
在外部網路中,嘗試從瀏覽器存取 REST API URL。 如果從內部部署 Exchange 環境得到 401 回應,表示已發佈 REST API URL。 否則,請連絡區域網路團隊以發佈 URL。
注意
如果無法存取 Exchange REST API,則表示 Teams 顯示狀態服務不支援使用 EWS URL 遞補。
步驟 2:驗證 Teams 未被阻止存取整個組織的 EWS。
執行下列 Exchange PowerShell 命令,檢查是否已為整個組織將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList:
Get-OrganizationConfig | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。 空值 EwsAllowList (EwsAllowList={}) 會讓所有用戶端都無法存取 EWS。
請務必將 *Microsoft.Skype.Presence.App/* 列為 EwsAllowList 參數的陣列成員。 如果沒有,請執行下列命令加以新增:
Set-OrganizationConfig -EwsAllowList @{Add="*Microsoft.Skype.Presence.App/*"}
如果 EwsEnabled 參數設定為 False,則必須設定為 True 或 Null (空白)。 否則,也會禁止 Teams 服務存取 EWS。
步驟 3:確認未禁止 Teams 存取使用者信箱的 EWS。
執行下列 Exchange PowerShell 命令,檢查是否已為使用者的信箱將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList:
Get-CasMailbox <user's UserPrincipalName> | Select-Object Ews*
如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。
請務必 *Microsoft.Skype.Presence.App/* 列為 EwsAllowList 參數的陣列成員。 如果沒有,請執行下列 Exchange PowerShell 命令加以新增:
Set-CASMailbox <user's UserPrincipalName> -EwsAllowList @{Add="* Microsoft.Skype.Presence.App/*"}
如果 EwsEnabled 參數設定為 False,則必須將其設定為 True。 否則,也會禁止 Teams 服務存取 EWS。
步驟 4:呈報問題
如果確認本文中提到的先決條件和設定都沒有問題,請向 Microsoft 支援服務提交服務要求,並提供下列資訊:
- 受影響使用者的 UserPrincipalName 參數。
- 問題重現時以 UTC 表示的時間。
- Teams 用戶端偵錯記錄檔 有關如何收集這些紀錄的資訊,請參閱在對 Microsoft Teams 進行疑難排解時使用紀錄檔。