共用方式為


對於 Windows 裝置上的主要刷新權杖問題進行疑難排解

本文討論當您使用 Microsoft Entra 認證在已加入Microsoft Entra 的 Windows 裝置上驗證時,如何針對涉及主要重新整理權杖 (PRT) 的問題進行疑難排解。

在已加入至 Microsoft Entra ID 或混合式 Microsoft Entra ID 的裝置上,驗證的主要元件是 PRT。 第一次在已加入 Microsoft Entra 的裝置上使用 Microsoft Entra 認證來登入 Windows 10,即可取得此權杖。 PRT 會快取於該裝置上。 針對後續的登入時,會使用快取的權杖來讓您使用桌面。

在鎖定和解除鎖定裝置或再次登入 Windows 的過程中,會每四小時進行一次背景網路驗證嘗試,以更新 PRT。 如果發生無法重新整理令牌的問題,PRT 最終就會過期。 過期會影響 Microsoft Entra 資源的單一登入 (SSO)。 也會導致出現登入提示。

如果您懷疑存在 PRT 問題,建議您先收集 Microsoft Entra 記錄,並遵循疑難排解檢查清單中概述的步驟。 請先針對任何 Microsoft Entra 用戶端問題執行此動作,最好是在重現工作階段內。 在您提出支援要求之前,請先完成此流程。

疑難排解檢查清單

步驟 1:取得主要更新權杖的狀態

  1. 在遇到 PRT 問題的使用者帳戶下登入 Windows。

  2. 選取 [開始],然後搜尋並選取 [命令提示字元]

  3. 若要執行裝置註冊命令 (dsregcmd),請輸入 dsregcmd /status

  4. 找出裝置註冊命令輸出的 SSO 狀態區段。 以下文字顯示此區段的範例:

    +----------------------------------------------------------------------+
    | SSO State                                                            |
    +----------------------------------------------------------------------+
    
                    AzureAdPrt : YES
          AzureAdPrtUpdateTime : 2020-07-12 22:57:53.000 UTC
          AzureAdPrtExpiryTime : 2020-07-26 22:58:35.000 UTC
           AzureAdPrtAuthority : https://login.microsoftonline.com/00001111-aaaa-2222-bbbb-3333cccc4444
                 EnterprisePrt : YES
       EnterprisePrtUpdateTime : 2020-07-12 22:57:54.000 UTC
       EnterprisePrtExpiryTime : 2020-07-26 22:57:54.000 UTC
        EnterprisePrtAuthority : https://msft.sts.microsoft.com:443/adfs
    
    +----------------------------------------------------------------------+
    
  5. 檢查 AzureAdPrt 欄位的值。 如果設定為 NO,當您嘗試從 Microsoft Entra ID 取得 PRT 狀態時,就會發生錯誤。

  6. 檢查 AzureAdPrtUpdateTime 欄位的值。 如果 AzureAdPrtUpdateTime 欄位的值超過四小時,則可能出現問題,使 PRT 無法重新整理。 將裝置鎖定並解除鎖定以強制執行 PRT 重新整理,然後查看時間是否已更新。

步驟 2:取得錯誤碼

下一個步驟是取得導致 PRT 錯誤的錯誤碼。 取得 PRT 錯誤碼的最快方式是檢查裝置註冊命令輸出。 不過,此方法需要 Windows 10 2021 年 5 月更新版本 (版本 21H1) 或更新版本。 另一種方法是在 Microsoft Entra 分析和作業記錄尋找錯誤碼。

方法 1:檢查裝置註冊命令輸出

注意

只有在您使用 Windows 10 2021 年 5 月更新版 (版本 21H1) 或更新版本的 Windows 時,才能使用此方法。

若要取得 PRT 錯誤碼,請執行 dsregcmd 命令,然後找出 SSO State 區段。 在 AzureAdPrt 欄位中,Attempt Status 欄位包含錯誤碼。 在下列範例中,錯誤碼為 0xc000006d

                AzureAdPrt : NO
       AzureAdPrtAuthority : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd
     AcquirePrtDiagnostics : PRESENT
      Previous Prt Attempt : 2020-09-18 20:20:09.760 UTC
            Attempt Status : 0xc000006d
             User Identity : user@contoso.com
           Credential Type : Password
            Correlation ID : aaaa0000-bb11-2222-33cc-444444dddddd
              Endpoint URI : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd/oauth2/token
               HTTP Method : POST
                HTTP Error : 0x0
               HTTP status : 400
         Server Error Code : invalid_grant
  Server Error Description : AADSTS50126: Error validating credentials due to invalid username or password.

方法 2:使用事件檢視器來檢查 AAD 分析和作業記錄

  1. 選取 [開始],然後搜尋並選取 [事件檢視器]

  2. 如果主控台樹狀目錄未出現在 [事件檢視器] 視窗中,請選取 [顯示/隱藏主控台樹狀目錄] 圖示來顯示主控台樹狀目錄。

  3. 在主控台樹狀目錄中,選取 [事件檢視器 (本機)]。 如果子節點未出現在此項目下方,請按兩下您的選取項目以顯示它們。

  4. 選擇檢視功能表。 如果 [顯示分析和偵錯記錄檔] 旁未顯示核取記號,請選取該功能表項目以啟用該功能。

  5. 在主控台樹狀目錄中,展開 [應用程式及服務記錄檔][Microsoft][Windows][AAD]作業分析子節點隨即出現。

    注意

    在 Microsoft Entra Cloud Authentication Provider (CloudAP) 外掛程式中,錯誤事件會寫入作業事件記錄檔,資訊事件則會寫入分析事件記錄檔。 您必須檢查作業分析事件記錄檔,以針對 PRT 問題進行疑難排解。

  6. 在主控台樹狀目錄中,選取 [分析] 節點,以檢視 AAD 相關分析事件。

  7. 在分析事件清單中,搜尋事件識別碼 1006 和 1007。 事件識別碼 1006 代表 PRT 擷取流程的開頭,而事件識別碼 1007 表示 PRT 擷取流程的結尾。 事件識別碼 1006 和 1007 之間記錄的 AAD 記錄 (分析作業兩者) 中的所有事件,會記錄在 PRT 擷取流程中。 下表顯示範例事件清單。

    層級 日期與時間 來源 事件識別碼 工作類別
    資訊 6/24/2020 3:35:35 AM AAD 1006 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1018 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1144 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1022 AadCloudAPPlugin 運行
    錯誤 6/24/2020 3:35:35 AM AAD 1084 AadCloudAPPlugin Operation
    錯誤 6/24/2020 3:35:35 AM AAD 1086 AadCloudAP外掛操作
    錯誤 6/24/2020 3:35:35 AM AAD 1160 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1007 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1157 AadCloudAPPlugin Operation
    資訊 6/24/2020 3:35:35 AM AAD 1158 AadCloudAPPlugin Operation
  8. 請雙擊包含事件識別碼 1007 的資料列。 此事件的 [事件屬性] 對話方塊隨即出現。

  9. 在 [一般] 索引標籤上的 [描述] 方塊中,複製錯誤碼。 錯誤碼是以 0x 開頭的 10 字元字串,後面接著 8 位數的十六進位數字。

步驟 3:取得特定錯誤碼的疑難排解指示

狀態代碼 (「STATUS_」前置詞,以「0xc000」開頭的代碼)

STATUS_LOGON_FAILURE (-1073741715 / 0xc000006d),
STATUS_WRONG_PASSWORD (-1073741718 / 0xc000006a)
原因
  • 裝置無法連線到 Microsoft Entra 驗證服務。

  • 裝置從下列其中一個來源收到 400 Bad Request HTTP 錯誤回應:

解決方案
  • 如果內部部署環境需要向外 Proxy,必須確保電腦裝置的帳戶能夠偵測到向外 Proxy,並能自動進行驗證。

  • 取得伺服器錯誤碼和錯誤描述,然後移至 [一般伺服器錯誤碼 (「AADSTS」前置詞)] 區段,以找出該伺服器錯誤碼的原因和解決方案詳細資料。

    在 Microsoft Entra 作業記錄中,如果錯誤發生在 Microsoft Entra 驗證服務中,事件識別碼 1081 包含伺服器錯誤碼和錯誤描述。 如果錯誤發生在 WS-Trust 端點中,則會在事件識別碼 1088 中找到伺服器錯誤碼和錯誤描述。 在 Microsoft Entra 分析記錄中,事件識別碼 1022 的第一個執行個體(位於作業事件識別碼 1081 和 1088 之前)包含了正被存取的該 URL。

    若要在 Microsoft Entra 作業和分析記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

STATUS_REQUEST_NOT_ACCEPTED (-1073741616 / 0xc00000d0)
原因

裝置從下列其中一個來源收到 400 Bad Request HTTP 錯誤回應:

解決方案

取得伺服器錯誤碼和錯誤描述,然後移至 [一般伺服器錯誤碼 (「AADSTS」前置詞)] 區段,以找出該伺服器錯誤碼的原因和解決方案詳細資料。

在 Microsoft Entra 作業記錄中,如果錯誤發生在 Microsoft Entra 驗證服務中,事件識別碼 1081 包含伺服器錯誤碼和錯誤描述。 如果錯誤發生在 WS-Trust 端點中,則會在事件識別碼 1088 中找到伺服器錯誤碼和錯誤描述。 在 Microsoft Entra 分析記錄中,事件識別碼 1022 的第一個執行個體(在作業事件識別碼 1081 和 1088 之前)包含正在存取的 URL。

若要在 Microsoft Entra 作業和分析記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

STATUS_NETWORK_UNREACHABLE (-1073741252 / 0xc000023c),
STATUS_BAD_NETWORK_PATH (-1073741634 / 0xc00000be),
STATUS_UNEXPECTED_NETWORK_ERROR (-1073741628 / 0xc00000c4)
原因
  • 裝置從下列其中一個來源收到 4xx HTTP 錯誤回應:

  • 必要端點出現網路連線問題。

解決方案
  • 取得伺服器錯誤碼和錯誤描述,然後移至 [一般伺服器錯誤碼 (「AADSTS」前置詞)] 區段,以找出該伺服器錯誤碼的原因和解決方案詳細資料。

    在 Microsoft Entra 作業記錄中,如果錯誤發生在 Microsoft Entra 驗證服務中,事件識別碼 1081 包含伺服器錯誤碼和錯誤描述。 如果錯誤發生在 WS-Trust 端點中,則會在事件識別碼 1088 中找到伺服器錯誤碼和錯誤描述。

  • 針對網路連線問題,取得要存取的 URL,以及來自網路堆疊的子錯誤代碼。 Microsoft Entra 分析記錄中的事件識別碼 1022 包含要存取的 URL。 Microsoft Entra 作業記錄中的事件識別碼 1084 包含來自網路堆疊的子錯誤代碼。

若要在 Microsoft Entra 作業和分析記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

STATUS_NO_SUCH_LOGON_SESSION (-1073741729 / 0xc000005f)
原因

Microsoft Entra 驗證服務找不到使用者的網域,因此使用者領域探索失敗。

解決方案

常見的 CloudAP 外掛程式錯誤碼 (「AAD_CLOUDAP_E_」前置詞,開頭為「0xc004」的代碼)

AAD_CLOUDAP_E_OAUTH_USERNAME_IS_MALFORMED (-1073445812 / 0xc004844c)
原因

使用者的 UPN 不是預期的格式。 UPN 值會根據裝置類型而有所不同,如下表所示。

設備加入類型 UPN 值
已加入 Microsoft Entra 的裝置 使用者登入時所輸入的文字
已加入混合式 Microsoft Entra 的裝置 網域控制器在登入流程中傳回的 UPN
解決方案
  • 根據因特網標準 RFC 822,將使用者的 UPN 設定為因特網樣式的登入名稱。 若要尋找目前的 UPN,請在 Microsoft Entra 分析記錄中尋找事件識別碼 1144。

    若要在 Microsoft Entra 分析記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

  • 針對已加入混合式的 Microsoft Entra 裝置,請確定網域控制站已設定為以正確的格式傳回 UPN。 若要在網域控制器中顯示設定的 UPN,請執行下列 whoami 命令:

    whoami /upn
    

    如果 Active Directory 已設定正確的 UPN,收集本地安全機構子系統服務 (LSASS 或 lsass.exe) 的時間移動追蹤

  • 如果內部部署網域名稱無法路由 (例如,UPN 像 jdoe@contoso.local),設定替代登入識別碼 (AltID)。 (若要檢視必要條件,請參閱規劃您的 Microsoft Entra 混合式加入實作。)

AAD_CLOUDAP_E_OAUTH_USER_SID_IS_EMPTY (-1073445822 / 0xc0048442)
原因

Microsoft Entra 驗證服務傳回的識別碼權杖中,缺少使用者安全性識別碼 (SID)。

解決方案

確認網路 Proxy 並未干擾或修改伺服器回應。

AAD_CLOUDAP_E_WSTRUST_SAML_TOKENS_ARE_EMPTY (-1073445695 / 0xc00484c1 / 0x800484c1)
原因

您收到來自 WS-Trust 通訊協定端點的錯誤,此協定是聯邦驗證所需的。

解決方案
  • 確認網路 Proxy 並未干擾或修改伺服器回應。

  • 從 Microsoft Entra 作業記錄中的事件識別碼 1088 取得伺服器錯誤碼和錯誤描述。 然後移至 [一般伺服器錯誤碼 (「AADSTS」前置詞)] 區段,以找出該伺服器錯誤碼的原因和解決方案詳細資料。

    若要在 Microsoft Entra 作業記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

AAD_CLOUDAP_E_HTTP_PASSWORD_URI_IS_EMPTY (-1073445749 / 0xc004848b)
原因

Metadata Exchange (MEX) 端點設定不正確。 MEX 回應未包含任何密碼 URL。

解決方案
  • 確認網路 Proxy 並未干擾或修改伺服器回應。

  • 修正 MEX 設定,以在回應中傳回有效的 URL。

AAD_CLOUDAP_E_HTTP_CERTIFICATE_URI_IS_EMPTY (-1073445748 / 0xc004848c)
原因

Metadata Exchange (MEX) 端點設定不正確。 MEX 回應未包含任何憑證端點 URL。

解決方案
  • 確認網路 Proxy 並未干擾或修改伺服器回應。

  • 修正識別提供者中的 MEX 設定,以在回應中傳回有效的憑證 URL。

常見的 XML 錯誤碼 (開頭為「0xc00c」的代碼)

WC_E_DTDPROHIBITED (-1072894385 / 0xc00cee4f)
原因

來自 WS-Trust 通訊協定端點 (同盟驗證所需) 的 XML 回應包含文件類型定義 (DTD)。 XML 回應中不會預期 DTD,如果包含 DTD,回應剖析就會失敗。

解決方案

常見的伺服器錯誤代碼 (「AADSTS」前置詞)

您可以在 Microsoft Entra 驗證和授權錯誤碼中找到伺服器錯誤碼的完整清單和描述。

AADSTS50155:裝置驗證失敗
原因
解決方案

根據裝置加入類型重新註冊裝置。 如需指示,請參閱我已停用或刪除裝置。但裝置上的本機狀態顯示裝置仍處於已註冊狀態。我該怎麼辦?

AADSTS50034:使用者帳戶<帳戶>不存在於 <tenant-id> 目錄中
原因

Microsoft Entra ID 找不到租用戶中的使用者帳戶。

解決方案
AADSTS50126:驗證認證時因為使用者名稱或密碼無效而發生錯誤
原因
  • 使用者在登入 UI 中輸入了不正確的使用者名稱或密碼。

  • 密碼尚未同步至 Microsoft Entra ID,因為下列情況:

    • 租戶已啟用密碼雜湊同步
    • 這個裝置是 Microsoft Entra 的混合加入裝置。
    • 使用者最近變更了密碼。
解決方案

若要取得具有新認證的全新 PRT,請等候 Microsoft Entra 同步處理完成。

常見的網路錯誤碼 (「ERROR_WINHTTP_」前置詞)

您可以在 錯誤訊息 (WinHTTP.h) 中找到網路錯誤碼的完整清單和描述。

ERROR_WINHTTP_TIMEOUT (12002),
ERROR_WINHTTP_NAME_NOT_RESOLVED (12007),
ERROR_WINHTTP_CANNOT_CONNECT (12029),
ERROR_WINHTTP_CONNECTION_ERROR (12030)
原因

常見的一般網路相關問題。

解決方案
  • 取得要存取的 URL。 您可以在 Microsoft Entra 作業記錄的事件識別碼 1084 或 Microsoft Entra 分析記錄的事件識別碼 1022 中找到 URL。

    若要在 Microsoft Entra 作業和分析記錄中檢視事件識別碼,請參閱方法 2:使用事件檢視器來檢查 Microsoft Entra 分析和作業記錄一節。

  • 如果內部部署環境需要外部代理伺服器,必須確定裝置的電腦帳戶能夠發現並自動驗證該外部代理伺服器。

  • 收集網路追蹤時,請依照下列步驟:

    重要

    在此程序期間請勿使用 Fiddler。

    1. 執行下列 netsh trace start 命令:

      netsh trace start scenario=InternetClient_dbg capture=yes persistent=yes
      
    2. 鎖定裝置。

    3. 如果裝置是 Microsoft Entra 混合式加入裝置,請等候至少 60 秒,讓 PRT 擷取工作完成。

    4. 將裝置解除鎖定。

    5. 執行下列 netsh trace stop 命令:

      netsh trace stop
      

步驟 4:收集記錄和追蹤

常規記錄

  1. 下載驗證文本封存,並將指令碼解壓縮到本機目錄。 如有必要,請檢閱 KB 4487175 中的使用指示。

  2. 開啟具有系統管理員權限的 PowerShell 工作階段,然後將目前的目錄變更為儲存驗證腳本的資料夾。

  3. 若要開始錯誤追蹤工作階段,請輸入下列命令:

    .\Start-auth.ps1 -v -acceptEULA
    
  4. 切換 Windows 使用者帳戶以移至有問題使用者的工作階段。

  5. 鎖定裝置。

  6. 如果裝置是 Microsoft Entra 混合式加入裝置,請等候至少 60 秒,讓 PRT 擷取工作完成。

  7. 將裝置解除鎖定。

  8. 將 Windows 使用者帳戶切換回正在執行追蹤階段的管理者階段。

  9. 重現問題之後,請執行下列命令來結束追蹤工作階段:

    .\stop-auth.ps1
    
  10. 等候所有追踪完全停止。

時間旅行痕跡

下列程序說明如何使用時間移動偵錯 (TTD) 功能來擷取追蹤。

警告

時空旅行追蹤包含個人資料。 此外,本地安全機構子系統服務 (LSASS 或 lsass.exe) 追蹤包含極其敏感的資訊。 當您處理這些追蹤時,請確定您使用最佳做法來儲存和共用這種類型的資訊。

  1. 選取 [開始],輸入 cmd,在搜尋結果中尋找並以滑鼠右鍵按兩下 [命令提示字元],然後選取 [以系統管理員身分執行]

  2. 在命令提示字元中,建立暫存目錄:

    mkdir c:\temp
    
  3. 執行下列 tasklist 命令:

    tasklist /m lsasrv.dll
    
  4. tasklist 命令輸出中,尋找 lsass.exe 的程序 ID (PID)。

  5. 若要開始 lsass.exe 處理程序的追蹤工作階段,請執行下列時間移動偵錯命令 (TTD.exe):

    TTD.exe -attach <lsass-pid> -out c:\temp
    
  6. 鎖定在網域帳戶下登入的裝置。

  7. 將裝置解除鎖定。

  8. 若要結束時間移動追蹤工作階段,請執行下列 TTD 命令:

    TTD.exe -stop all
    
  9. 取得最新的 lsass##.run 檔案。