解決 Teams 與 Exchange Server 之間的互動問題

若要開始,請檢查 Microsoft Exchange Server 和 Microsoft Teams 如何互動以驗證部署中的版本和環境相容性。

徵狀

問題 1:代理人無法代表代理人排程 Teams 會議

信箱裝載於 Exchange Server 的使用者會將另一位使用者新增為委派,以管理 Microsoft Outlook 行事曆。 使用 Outlook 版 Teams 載入宏的代理人無法代表代理人排程 Teams 會議,而且 Outlook 會傳回下列錯誤訊息:

您似乎沒有為此帳戶排程會議的權限。 請連絡擁有者以取得權限,然後再試一次。

問題 2:您嘗試使用 Teams 行事曆應用程式時遇到問題

發生下列任一問題:

  • Teams 用戶端中未顯示「行事曆」圖示。
  • 當您使用Teams桌面用戶端或Web用戶端時,Teams行事曆應用程式會顯示「很抱歉,我們無法取得您的會議詳細數據」錯誤訊息。

Teams 行事曆應用程式需要透過 Exchange Web 服務 (EWS) 存取 Exchange 信箱。 Exchange 信箱可以在 Exchange 混合式部署的範圍內連線或內部部署。

問題 3:Teams 中的目前狀態卡在 Office 外,或在用戶參加 Outlook 行事曆會議時不會顯示「在會議中」

信箱裝載於內部部署 Exchange 伺服器的使用者已關閉 Outlook 用戶端中的自動回復功能,但 Teams 目前狀態會對相同組織中的所有 Teams 用戶端顯示「不在辦公室」。 這種情況可能會持續數天。

注意事項

對於其信箱在內部部署中託管的使用者,其目前狀態預期延遲最長為一個小時。

使用者正在參加 Outlook 行事曆會議,但 Teams 顯示狀態不會更新為 [開會中]。

先決條件

若要整合 Teams 服務與安裝 Exchange Server,請確定您的本機 Exchange Server 環境符合下列需求:

  • Microsoft Teams 必須注意信箱是裝載在 Exchange Online、內部部署或混合式 Exchange 伺服器部署中。 Teams 服務會透過 REST API 呼叫 Exchange Online 服務,此 API 會根據混合式組態,在適用時重新導向至裝載信箱的內部部署伺服器。

  • Exchange Online 與內部部署 Exchange 伺服器環境整合,如什麼是 OAuth 驗證?中所述。 最好是執行 Exchange 混合式精靈來設定它,但可以手動達成相同的結果,如設定 Exchange 與 Exchange Online 組織之間的 OAuth 驗證中所述。 Exchange Online 是以應用程式識別碼 00000002-0000-0ff1-ce00-000000000000 代表的。

  • 此外,Teams 服務也需要代表用戶進行驗證,才能存取同時使用 OAuth 裝載於內部部署的信箱。 在此情況下,teams 排程服務會使用 商務用 Skype Online 的應用程式識別碼,以及設定 商務用 Skype Online 00000004-0000-0ff1-ce00-000000000000Exchange Server 之間的整合和 OAuth 中參考的 MailUser:

    • 自 Exchange 通訊錄隱藏的帳戶。 最佳做法是隱藏通訊簿中的帳戶,因為它是停用的用戶帳戶。
    • 該帳戶具有 UserApplication 的 Exchange 管理角色指派。
    • 對於保留和封存,需要 ArchiveApplication 的角色指派。
    • 需要進行本文中的所有步驟,才能提供完整的 Teams 和 Exchange 伺服器內部部署。

注意事項

Microsoft 身分識別平台與 OAuth 2.0 使用方式範例可在這裡找到

  • 您應該設定網際網路對向防火牆或反向 Proxy 伺服器,將商務用 Skype Online 和 Microsoft Teams 的 URL 與 IP 位址範圍新增至允許清單,以讓 Microsoft Teams 存取執行 Exchange Server 的伺服器。 For more information, see the "Skype for Business Online and Microsoft Teams" section of Microsoft 365 URLs and IP address ranges.

  • 務必要有 Exchange 自動探索 V2,才能讓 Teams 服務針對位於 Exchange 伺服器中的使用者信箱執行未經驗證的探索。 Exchange Server 2013 累積更新 19 或更新版本完全支援自動探索 V2。 這足以讓Teams委派正常運作。 不過,Teams 行事曆應用程式需要安裝 Exchange Server 2016 累積更新 3 或更新版本。 因此,需要 Exchange Server 2016 累積更新 3 或更新版本,才能支援完整功能。

常見疑難排解步驟

注意事項

這些疑難排解步驟適用於上面列出的所有問題。

步驟 1:確認自動探索服務正常運作

Teams 服務會使用 Exchange 自動探索服務來找出執行 Exchange Server 的伺服器所發佈的 EWS URL。 若要確認自動探索程式是否正常運作,請使用下列步驟:

  1. 請使用者瀏覽到 Microsoft Remote Connectivity Analyzer。 遠端連線分析器工具會使用一組特定的IP位址來尋找EWS URL。 如需 Microsoft 365 的這些 IP 位址清單,請參閱 Microsoft 365 URL 和 IP 位址範圍中識別碼 46 的資訊

  2. 選取 [ 使用自動探索來偵測伺服器設定] 複選框。

  3. 輸入要求的資訊。

  4. 選擇 [執行測試] 按鈕以啟動自動探索測試。

如果測試失敗,您必須首先解決自動探索問題。

Microsoft 遠端連線分析器的 Outlook 連線頁面螢幕快照。

注意事項

針對 Teams 委派問題,請測試委派者的信箱。 針對 Teams 行事曆應用程式和 Teams 目前狀態問題,請測試受影響使用者的信箱。

步驟 2:驗證自動探索服務能否將自動探索要求路由到內部

從系統管理 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 <https://mail.contoso.com/EWS/Exchange.asmx>

如果此測試失敗,或者 EWS URL 不正確,請查看先決條件部分。 這是因為問題可能是由 Exchange 混合組態問題或阻止外部要求的防火牆或反向 Proxy 引起的。

步驟 3:驗證 Exchange OAuth 身份驗證協定是否已啟用並正常工作

若要驗證 Exchange OAuth 認證是否已啟用並正常工作,請按照在 Exchange 與 Exchange Online 組織之間設定 OAuth 身份驗證中所述的步驟執行Test-OAuthCOnnectivity指令。

此外,執行 Microsoft Remote Connectivity Analyzer 中的 Free/Busy 連線測試。 如果要執行這項操作,請依照下列步驟執行:

  1. 導覽到 Microsoft Remote Connectivity Analyzer

  2. 選取 [空閒/忙碌 ] 測試,確認 Microsoft 365 信箱可以存取內部部署信箱的空閒/忙碌資訊,反之亦然。

    必須透過將源郵箱電子郵件地址與目標郵箱電子郵件地址交換來執行此測試兩次。 這是因為每次執行都是單向的。 此測試不一定必須使用受影響的帳戶來執行。 測試可以使用任何一對內部部署信箱和 Microsoft 365 信箱來執行。

    若要深入瞭解如何針對 Microsoft 365 中內部部署和 Exchange Online 混合式部署中的空閒/忙碌問題進行疑難解答,請參閱這篇文章

排除 Teams 委派的疑難問題

注意事項

這些疑難解答步驟僅適用於 問題 1

步驟 1:驗證代理人是否已被授予 Editor 權限以存取委派人行事曆

在 Exchange 伺服器上開啟 Exchange 管理命令介面,然後執行下列 Exchange PowerShell 命令,以驗證編輯者存取權限是否已授與代理人:

Get-MailboxFolderPermission -Identity <delegator's UserPrincipalName>:\calendar  | Format-List

檢查 [AccessRights] 參數是否包含 [Editor] 值。 如果沒有,請執行下列命令來授與權限:

Add-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 -EwsApplicationAccessPolicy EnforceAllowList -EwsAllowList @{Add="*SchedulingService*"}

如果 EwsEnabled 參數設定為 False,則必須設定為 TrueNull (空白)。 否則,也會禁止 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> -EwsApplicationAccessPolicy EnforceAllowList -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 行事曆應用程式是否已啟用

  1. 開啟 Microsoft Teams 管理中心,轉到 [使用者] 並針對受影響的使用者選擇 [檢視原則]。

    Microsoft Teams 系統管理中心視窗的螢幕快照。已列出 [原則] 索引卷標下指派的原則。

  2. 選取指派給該使用者的 [應用程式設定原則]。 上面的示例使用了全域 (組織範圍預設值) 原則。 確認顯示的行事曆應用程式 (ID ef56c0de-36fc-4ef8-b417-3d82ba9d073c)。

    Teams 應用程式設定原則的螢幕快照,其中顯示行事曆應用程式。

    如果行事曆應用程式丟失,請還原它。 如需詳細資訊,請參閱管理 Microsoft Teams 中的應用程式設定原則

步驟 2:驗證 Teams 升級共存模式允許 Teams 會議

  1. 開啟 Microsoft Teams 系統管理中心。

  2. 移至 [使用者],然後選取受影響的使用者。

  3. 驗證 [共存模式] 設定是否為 [商務用 Skype] 或 [商務用 Skype 搭配 Teams] 以外的值。

    此螢幕快照顯示 [使用者] 專案中 [帳戶] 索引標籤的 [共存模式] 選項。

  4. 如果使用者共存模式設定為 [使用全組織設定],則表示將會使用預設租用戶共存模式。

  5. 跳到 [使用全組織設定],然後選擇 [Teams 升級]。

  6. 驗證預設 [共存模式設定] 是否為 [僅 Skype 業務] 或 [商務用 Skype 搭配 Teams]以外的值。

    顯示 Teams 升級下 [共存模式] 設定的螢幕快照。

步驟 3:驗證 Teams 未被阻止存取整個組織的 EWS。

執行下列 Exchange PowerShell 命令,檢查是否已為整個組織將參數 EwsApplicationAccessPolicy 設定為 EnforceAllowList

Get-OrganizationConfig | Select-Object Ews*

如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。

請確定 MicrosoftNinja/**Teams/*SkypeSpaces/* 列為 EwsAllowList 參數的陣列成員。 如果不是,請執行下列命令加以新增:

Set-OrganizationConfig -EwsApplicationAccessPolicy EnforceAllowList -EwsAllowList @{Add="MicrosoftNinja/*","*Teams/*","SkypeSpaces/*"}

如果 EwsEnabled 參數設定為 False,則必須設定為 TrueNull (空白)。 否則,也會禁止 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> -EwsApplicationAccessPolicy EnforceAllowList -EwsAllowList @{Add="MicrosoftNinja/*","*Teams/*","SkypeSpaces/*"}

如果 EwsEnabled 參數設定為 False,則必須將其設定為 True。 否則,Teams 服務也將被阻止存取 EWS。

步驟 5:驗證 Microsoft Teams 行事曆應用程式測試是否成功

  1. 請使用者前往 Microsoft Remote Connectivity Analyzer
  2. 輸入要求的資訊。
  3. 選取 [執行測試] 按鈕,以啟動 Microsoft Teams 行事曆應用程式測試。

如果測試失敗,應嘗試解決問題並重新執行測試。

Microsoft 遠端連線分析器的 Teams 行事曆應用程式頁面螢幕快照。

步驟 6:呈報問題

如果您確認本文中提到的先決條件和設定都沒有問題,請向 Microsoft 支援服務提交服務要求,並提供下列相關資訊:

對 Teams 顯示狀態問題進行疑難排解

注意事項

這些疑難解答步驟僅適用於 問題 3

步驟 1:確認是否已在公用網路上發佈內部部署 Exchange REST API 的 URL。

使用使用者的信箱找出內部部署 Exchange EWS URL,並變更 URL 格式,以在 [常見疑難解答步驟] 區段中執行 步驟 2。 例如,變更 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 目前狀態測試成功

  1. 要求使用者流覽至 Microsoft 遠端連線分析器的 [以行事曆事件為基礎的 Teams 目前狀態] 區段。 遠端連線分析器工具會使用一組特定的IP位址來尋找EWS URL。 如需 Microsoft 365 的這些 IP 位址清單,請參閱 Microsoft 365 URL 和 IP 位址範圍中識別碼 46 的資訊
  2. 輸入要求的資訊。
  3. 選取 [ 執行測試] 按鈕,以根據行事曆事件測試啟動Teams目前狀態。

如果測試失敗,應嘗試解決問題並重新執行測試。

Microsoft 遠端連線分析器的 Teams 行事曆事件型目前狀態頁面螢幕快照。

步驟 3:驗證 Teams 未被阻止存取整個組織的 EWS。

執行下列 Exchange PowerShell 命令,檢查是否已為整個組織將 EwsApplicationAccessPolicy 參數設定為 EnforceAllowList

Get-OrganizationConfig | Select-Object Ews*

如果參數設定為 EnforceAllowList,則表示只允許 EwsAllowList 中列出的用戶端存取 EWS。 空值 EwsAllowList (EwsAllowList={}) 會讓所有用戶端都無法存取 EWS。

請確定 *Microsoft.Skype.Presence.App/* 已列為 EwsAllowList 參數的陣列成員。 如果沒有,請執行下列命令加以新增:

Set-OrganizationConfig -EwsApplicationAccessPolicy EnforceAllowList -EwsAllowList @{Add="*Microsoft.Skype.Presence.App/*"}

如果 EwsEnabled 參數設定為 False,則必須設定為 TrueNull (空白)。 否則,也會禁止 Teams 服務存取 EWS。

步驟 4:確認未封鎖 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> -EwsApplicationAccessPolicy EnforceAllowList -EwsAllowList @{Add="* Microsoft.Skype.Presence.App/*"}

如果 EwsEnabled 參數設定為 False,則必須將其設定為 True。 否則,也會禁止 Teams 服務存取 EWS。

步驟 5:呈報問題

如果確認本文中提到的先決條件和設定都沒有問題,請向 Microsoft 支援服務提交服務要求,並提供下列資訊: