使用 dsregcmd 命令針對裝置進行疑難排解

本文涵蓋如何使用 dsregcmd 命令的輸出,以瞭解 Azure Active Directory (Azure AD) 中的裝置狀態。 此 dsregcmd /status 公用程式必須以網域使用者帳戶的形式執行。

裝置狀態

此區段會列出裝置加入狀態參數。 下表列出裝置在不同加入狀態中所需的準則:

AzureAdJoined Enterprise 加入 DomainJoined 裝置狀態
YES Azure AD 加入
YES 已加入網域
YES YES 混合式 AD 加入
YES YES 內部部署 DRS 加入

注意

工作場所加入 (Azure AD 註冊的) 狀態會顯示在 [使用者狀態] 區段中。

  • AzureAdJoined:如果裝置已加入 Azure AD,請將狀態設為 [是]。 否則,請將狀態設為 [否]。
  • EnterpriseJoined:如果裝置已加入內部部署資料複寫服務 (DRS),請將狀態設為 [是]。 裝置不可同時為 EnterpriseJoined 和 AzureAdJoined。
  • DomainJoined:如果裝置已加入網域 (Active Directory),請將狀態設為 [是]。
  • DomainName:如果裝置已加入網域,請將狀態設為網域的名稱。

範例裝置狀態輸出

+----------------------------------------------------------------------+
| Device State                                                         |
+----------------------------------------------------------------------+
             AzureAdJoined : YES
          EnterpriseJoined : NO
              DomainJoined : YES
                DomainName : HYBRIDADFS
+----------------------------------------------------------------------+

裝置詳細資訊

只有當裝置已加入 Azure AD 或混合式 Azure AD 聯結 (非 Azure AD 註冊的) 時,才會顯示此狀態。 此區段會列出儲存在 Azure AD 中的裝置識別詳細資料。

  • DeviceId:Azure AD 租用戶中裝置的唯一識別碼。
  • 指紋:裝置憑證的指紋。
  • DeviceCertificateValidity:裝置憑證的有效狀態。
  • KeyContainerId:與裝置憑證相關裝置私密金鑰的 containerId。
  • KeyProvider:用來儲存裝置私密金鑰的 KeyProvider (硬體/軟體)。
  • TpmProtected:如果裝置私密金鑰儲存在硬體的信賴平台模組 (TPM),則狀態會設為 [是]。
  • DeviceAuthStatus:執行檢查以判斷 Azure AD 中裝置的健康情況。 健康狀態為:
    • 如果裝置存在並在 Azure AD 中啟用,則為成功。
    • 失敗。 如果裝置已停用或已刪除,則會停用或刪除裝置。 如需此問題的詳細資訊,請參閱 Azure Active Directory 裝置管理常見問題集
    • 失敗。 如果測試無法執行,則為錯誤。 這種測試需要 Azure AD 的網路連線能力。

      注意

      DeviceAuthStatus 欄位已在 Windows 10 2021 年 5 月更新中新增 (21H1 版)。

範例裝置詳細資料輸出

+----------------------------------------------------------------------+
| Device Details                                                       |
+----------------------------------------------------------------------+

                  DeviceId : e92325d0-xxxx-xxxx-xxxx-94ae875dxxxx
                Thumbprint : D293213EF327483560EED8410CAE36BB67208179
 DeviceCertificateValidity : [ 2019-01-11 21:02:50.000 UTC -- 2029-01-11 21:32:50.000 UTC ]
            KeyContainerId : 13e68a58-xxxx-xxxx-xxxx-a20a2411xxxx
               KeyProvider : Microsoft Software Key Storage Provider
              TpmProtected : NO
          DeviceAuthStatus : SUCCESS
+----------------------------------------------------------------------+

租用戶詳細資料

只有當裝置已加入 Azure AD 或混合式 Azure AD 聯結 (非 Azure AD 註冊的) 時,才會顯示租用戶詳細資料。 此區段會列出裝置加入 Azure AD 時所顯示的常見租用戶詳細資料。

注意

如果此區段中的行動裝置管理 (MDM) URL 欄位為空白,則表示未設定 MDM,或目前的使用者不在 MDM 註冊範圍內。 檢查 Azure AD 中的 [行動] 設定,以檢閱您的 MDM 設定。

注意

即使您看到 MDM URL,這並不表示裝置是由 MDM 管理。 如果租用戶的 MDM 設為自動註冊,即使裝置本身未受管理,也會顯示此資訊。

範例租用戶詳細資料輸出

+----------------------------------------------------------------------+
| Tenant Details                                                       |
+----------------------------------------------------------------------+

                TenantName : HybridADFS
                  TenantId : 96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx
                       Idp : login.windows.net
               AuthCodeUrl : https://login.microsoftonline.com/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx/oauth2/authorize
            AccessTokenUrl : https://login.microsoftonline.com/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx/oauth2/token
                    MdmUrl : https://enrollment.manage-beta.microsoft.com/EnrollmentServer/Discovery.svc
                 MdmTouUrl : https://portal.manage-beta.microsoft.com/TermsOfUse.aspx
          MdmComplianceUrl : https://portal.manage-beta.microsoft.com/?portalAction=Compliance
               SettingsUrl : eyJVxxxxIjpbImh0dHBzOi8va2FpbGFuaS5vbmUubWljcm9zb2Z0LmNvbS8iLCJodHRwczovL2thaWxhbmkxLm9uZS5taWNyb3NvZnQuY29tLyxxxx==
            JoinSrvVersion : 1.0
                JoinSrvUrl : https://enterpriseregistration.windows.net/EnrollmentServer/device/
                 JoinSrvId : urn:ms-drs:enterpriseregistration.windows.net
             KeySrvVersion : 1.0
                 KeySrvUrl : https://enterpriseregistration.windows.net/EnrollmentServer/key/
                  KeySrvId : urn:ms-drs:enterpriseregistration.windows.net
        WebAuthNSrvVersion : 1.0
            WebAuthNSrvUrl : https://enterpriseregistration.windows.net/webauthn/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx/
             WebAuthNSrvId : urn:ms-drs:enterpriseregistration.windows.net
    DeviceManagementSrvVer : 1.0
    DeviceManagementSrvUrl : https://enterpriseregistration.windows.net/manage/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx/
     DeviceManagementSrvId : urn:ms-drs:enterpriseregistration.windows.net
+----------------------------------------------------------------------+

使用者狀態

此區段會針對目前登入裝置的使用者,列出各種屬性的狀態。

注意

命令必須在使用者內容中執行,才能擷取有效的狀態。

  • NgcSet:如果已針對目前登入的使用者設定 Windows Hello 金鑰,請將狀態設為 [是]。
  • NgcKeyId:如果已針對目前登入的使用者設定 Windows Hello 金鑰,則為金鑰的識別碼。
  • CanReset:表示使用者是否可以重設 Windows Hello 金鑰。
  • 可能的值:如果發生錯誤,則為 DestructiveOnly、NonDestructiveOnly、DestructiveAndNonDestructive 或 Unknown。
  • WorkplaceJoined:如果 Azure AD 註冊的帳戶已新增至目前 NTUSER 內容中的裝置,請將狀態設為 [是]。
  • WamDefaultSet:如果已針對登入的使用者建立 Web 帳戶管理員 (WAM) 預設值 WebAccount,請將狀態設為 [是]。 如果 dsregcmd /status 從提升權限的命令提示字元執行,此欄位可能會顯示錯誤。
  • WamDefaultAuthority:針對 Azure AD 將狀態設為 [組織]。
  • WamDefaultId:針對 Azure AD 一律使用 https://login.microsoft.com
  • WamDefaultGUID:WAM 提供者針對預設 WAM WebAccount 的 (Azure AD/Microsoft 帳戶) GUID。

範例使用者狀態輸出

+----------------------------------------------------------------------+
| User State                                                           |
+----------------------------------------------------------------------+

                    NgcSet : YES
                  NgcKeyId : {FA0DB076-A5D7-4844-82D8-50A2FB42EC7B}
                  CanReset : DestructiveAndNonDestructive
           WorkplaceJoined : NO
             WamDefaultSet : YES
       WamDefaultAuthority : organizations
              WamDefaultId : https://login.microsoft.com
            WamDefaultGUID : { B16898C6-A148-4967-9171-64D755DA8520 } (AzureAd)

+----------------------------------------------------------------------+

SSO 狀態

您可以針對 Azure AD 已註冊的裝置忽略此區段。

注意

命令必須在使用者內容中執行,才能擷取使用者的有效狀態。

  • AzureAdPrt:如果已登入使用者的裝置上有主要重新整理權杖 (PRT),請將狀態設為 [是]。
  • AzureAdPrtUpdateTime:將狀態設為上次更新 PRT 時的國際標準時間 (UTC)。
  • AzureAdPrtExpiryTime:將狀態設為如果 PRT 未更新則會到期的時間 (UTC)。
  • AzureAdPrtAuthority:Azure AD 授權單位 URL
  • EnterprisePrt:如果裝置具有來自內部部署 Active Directory 同盟服務 (AD FS) 的 PRT,請將狀態設為 [是]。 針對已加入混合式 Azure AD 的裝置,裝置可能會同時具有 Azure AD 和內部部署 Active Directory 的 PRT。 已加入內部部署的裝置只會有 Enterprise PRT。
  • EnterprisePrtUpdateTime:將狀態設定為上次更新 Enterprise PRT 時的時間 (UTC)。
  • EnterprisePrtExpiryTime:將狀態設為如果 PRT 未更新則會到期的時間 (UTC)。
  • EnterprisePrtAuthority:AD FS 授權單位 URL

注意

下列 PRT 診斷欄位已在 Windows 10 2021 年 5 月更新中新增 (21H1 版)。

注意

  • 顯示在 [AzureAdPrt] 欄位中的診斷資訊適用於 Azure AD PRT 擷取或重新整理,而 [EnterprisePrt] 欄位中顯示的診斷資訊適用於 Enterprise PRT 擷取或重新整理。
  • 只有在上次成功的 PRT 更新時間 (AzureAdPrtUpdateTime/EnterprisePrtUpdateTime) 之後發生擷取或重新整理失敗時,才會顯示診斷資訊。
    在共用裝置上,此診斷資訊可能來自不同使用者的登入嘗試。
  • AcquirePrtDiagnostics:如果記錄中有取得的 PRT 診斷資訊,請將狀態設為 [已存在]。
    如果沒有可用的診斷資訊,則會略過此欄位。
  • 先前的 PRT 嘗試:發生失敗 PRT 嘗試的當地時間 (UTC)。
  • 嘗試狀態:傳回的用戶端錯誤碼 (HRESULT)。
  • 使用者身分識別:發生 PRT 嘗試的使用者 UPN。
  • 認證類型:用來取得或重新整理 PRT 的認證。 常見的認證類型為密碼和新一代認證 (NGC) (適用於 Windows Hello)。
  • 相互關聯識別碼:伺服器針對失敗 PRT 嘗試所傳送的相互關聯識別碼。
  • 端點 URI:失敗前所存取的最後一個端點。
  • HTTP 方法:用來存取端點的 HTTP 方法。
  • HTTP 錯誤:WinHttp 傳輸錯誤碼。 取得額外的網路錯誤碼
  • HTTP 狀態:端點傳回的 HTTP 狀態。
  • 伺服器錯誤碼:來自伺服器的錯誤碼。
  • 伺服器錯誤描述:來自伺服器的錯誤訊息。
  • RefreshPrtDiagnostics:如果記錄中有取得的 PRT 診斷資訊,請將狀態設為 [已存在]。
    如果沒有可用的診斷資訊,則會略過此欄位。 診斷資訊欄位與 AcquirePrtDiagnostics 相同

SSO 狀態輸出範例

+----------------------------------------------------------------------+
| SSO State                                                            |
+----------------------------------------------------------------------+

                AzureAdPrt : NO
       AzureAdPrtAuthority : https://login.microsoftonline.com/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx
     AcquirePrtDiagnostics : PRESENT
      Previous Prt Attempt : 2020-07-18 20:10:33.789 UTC
            Attempt Status : 0xc000006d
             User Identity : john@contoso.com
           Credential Type : Password
            Correlation ID : 63648321-fc5c-46eb-996e-ed1f3ba7740f
              Endpoint URI : https://login.microsoftonline.com/96fa76d0-xxxx-xxxx-xxxx-eb60cc22xxxx/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.
             EnterprisePrt : YES
   EnterprisePrtUpdateTime : 2019-01-24 19:15:33.000 UTC
   EnterprisePrtExpiryTime : 2019-02-07 19:15:33.000 UTC
    EnterprisePrtAuthority : https://fs.hybridadfs.nttest.microsoft.com:443/adfs

+----------------------------------------------------------------------+

診斷資料

預先加入診斷

只有當裝置已加入網域且無法加入混合式 Azure AD 時,才會顯示此診斷區段。

本節會執行各種測試,以協助診斷加入失敗。 此資訊包括錯誤階段、錯誤碼、伺服器要求識別碼、伺服器回應 HTTP 狀態,以及伺服器回應錯誤訊息。

  • 使用者內容:執行診斷所在的內容。 可能的值:SYSTEM、UN-ELEVATED User、ELEVATED User。

    注意

    因為實際加入是在系統內容中執行,所以在 SYSTEM 內容中執行診斷最接近實際的加入案例。 若要在 SYSTEM 內容中執行診斷,dsregcmd /status 必須從提升權限的命令提示字元執行命令。

  • 用戶端時間:系統時間 (UTC)。

  • AD 連線能力測試:此測試會對網域控制站執行連線測試。 這項測試中的錯誤可能會導致在前置檢查階段發生加入錯誤。

  • AD 設定測試:此測試會讀取並驗證是否已在內部部署 Active Directory 樹系中正確設定服務連接點 (SCP) 物件。 這項測試中的錯誤可能會導致在探索階段發生加入錯誤,錯誤碼為 0x801c001d。

  • DRS 探勘測試:此測試會從探索中繼資料端點取得 DRS 端點,並執行使用者領域要求。 這項測試中的錯誤可能會導致在探索階段發生加入錯誤。

  • DRS 連線能力測試:此測試會對 DRS 端點執行基本的連線測試。

  • 權杖取得測試:如果使用者租用戶已同盟,此測試會嘗試取得 Azure AD 的驗證權杖。 這項測試中的錯誤可能會導致在驗證階段發生加入錯誤。 如果驗證失敗,即會嘗試將同步加入視為遞補,除非已使用下列登錄機碼設定明確停用遞補:

    Keyname: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ
    Value: FallbackToSyncJoin
    Type:  REG_DWORD
    Value: 0x0 -> Disabled
    Value: 0x1 -> Enabled
    Default (No Key): Enabled
    
  • 以同步加入遞補:如果上述驗證失敗時防止以同步加入遞補的登錄機碼不存在,請將狀態設為 [已啟用]。 此選項從 Windows 10 1803 和更新版本中提供。

  • 先前的註冊:先前發生加入嘗試的時間。 只會記錄失敗的加入嘗試。

  • 錯誤階段:已中止加入的階段。 可能的值為預先檢查、探索、驗證和加入。

  • 用戶端錯誤碼:傳回的用戶端錯誤碼 (HRESULT)。

  • 伺服器錯誤碼:當要求傳送到伺服器,且伺服器回應錯誤碼時,所顯示的伺服器錯誤碼。

  • 伺服器訊息:傳回的伺服器訊息以及錯誤碼。

  • HTTP 狀態:伺服器傳回的 HTTP 狀態。

  • 要求識別碼:傳送至伺服器的用戶端要求識別碼。 要求識別碼可用於與伺服器端記錄相互關聯。

範例預先加入診斷輸出

下列範例顯示發生探索錯誤的診斷測試失敗。

+----------------------------------------------------------------------+
| Diagnostic Data                                                       |
+----------------------------------------------------------------------+

     Diagnostics Reference : www.microsoft.com/aadjerrors
              User Context : SYSTEM
               Client Time : 2019-01-31 09:25:31.000 UTC
      AD Connectivity Test : PASS
     AD Configuration Test : PASS
        DRS Discovery Test : FAIL [0x801c0021/0x801c000c]
     DRS Connectivity Test : SKIPPED
    Token acquisition Test : SKIPPED
     Fallback to Sync-Join : ENABLED

     Previous Registration : 2019-01-31 09:23:30.000 UTC
               Error Phase : discover
          Client ErrorCode : 0x801c0021

+----------------------------------------------------------------------+

下列範例顯示診斷測試已通過,但註冊嘗試因為目錄錯誤而失敗,預期會進行同步加入。 Azure AD Connect 同步作業完成後,裝置就能加入。

+----------------------------------------------------------------------+
| Diagnostic Data                                                       |
+----------------------------------------------------------------------+

     Diagnostics Reference : www.microsoft.com/aadjerrors
              User Context : SYSTEM
               Client Time : 2019-01-31 09:16:50.000 UTC
      AD Connectivity Test : PASS
     AD Configuration Test : PASS
        DRS Discovery Test : PASS
     DRS Connectivity Test : PASS
    Token acquisition Test : PASS
     Fallback to Sync-Join : ENABLED

     Previous Registration : 2019-01-31 09:16:43.000 UTC
         Registration Type : sync
               Error Phase : join
          Client ErrorCode : 0x801c03f2
          Server ErrorCode : DirectoryError
            Server Message : The device object by the given id (e92325d0-7ac4-4714-88a1-94ae875d5245) isn't found.
              Https Status : 400
                Request Id : 6bff0bd9-820b-484b-ab20-2a4f7b76c58e

+----------------------------------------------------------------------+

預先加入診斷

此診斷區段會顯示已加入雲端裝置上所執行的例行性檢查輸出。

  • AadRecoveryEnabled:如果值為 [是],則無法使用儲存在裝置中的金鑰,且裝置會標示為要復原。 下一次登入將會觸發復原流程,並重新登錄裝置。
  • KeySignTest:如果值為 [通過],則裝置金鑰的健康情況良好。 如果 KeySignTest 失敗,裝置通常會標示為進行復原。 下一次登入將會觸發復原流程,並重新登錄裝置。 針對已加入混合式 Azure AD 的裝置,復原是無訊息的。 當裝置已加入 Azure AD 或已註冊 Azure AD 時,系統就會提示使用者進行驗證,以便在必要時復原並重新登錄裝置。

    注意

    KeySignTest 需要較高的權限。

範例預先加入診斷輸出

+----------------------------------------------------------------------+
| Diagnostic Data                                                      |
+----------------------------------------------------------------------+

         AadRecoveryEnabled: NO
               KeySignTest : PASSED
+----------------------------------------------------------------------+

NGC 必要條件檢查。

此診斷區段會執行設定 Windows Hello 企業版 (WHFB) 的必要條件檢查。

注意

如果使用者已成功設定 WHFB,您可能不會在中 dsregcmd /status 看到 NGC 必要條件檢查詳細資料。

  • IsDeviceJoined:如果裝置已加入 Azure AD,請將狀態設為 [是]。
  • IsUserAzureAD:如果登入的使用者存在於 Azure AD 中,請將狀態設為 [是]。
  • PolicyEnabled:如果裝置上已啟用 WHFB 原則,則將狀態設為 [是]。
  • PostLogonEnabled:如果平台會以原生方式觸發 WHFB 註冊,請將狀態設為 [是]。 如果狀態設定為 [否],則表示 Windows Hello 企業版是由自訂機制所觸發。
  • DeviceEligible:如果裝置符合使用 WHFB 註冊的硬體需求,請將狀態設為 [是]。
  • SessionIsNotRemote:如果目前的使用者是直接登入裝置而非從遠端登入,請將狀態設為 [是]。
  • CertEnrollment:這是 WHFB 憑證信任部署的專用設定,表示 WHFB 的憑證登錄授權單位。 如果 WHFB 原則的來源是群組原則,狀態會設定為 [登錄授權單位],或如果來源為 MDM,則會設為 [行動裝置管理]。 如果未套用任何來源,請將狀態設為 [無]。
  • AdfsRefreshToken:這是 WHFB 憑證信任部署的專用設定,且只有在 CertEnrollment 狀態為登錄授權單位時才存在。 此設定會指出裝置是否有使用者的企業 PRT。
  • AdfsRaIsReady:這是 WHFB 憑證信任部署的專用設定,且只有在 CertEnrollment 狀態為登錄授權單位時才存在。 如果 AD FS 在探索中繼資料中指出其支援 WHFB,且可以使用登入憑證範本,請將狀態設為 [是]。
  • LogonCertTemplateReady:是 WHFB 憑證信任部署的專用設定,且只有在 CertEnrollment 狀態為登錄授權單位時才存在。 如果登入憑證範本的狀態是有效的,請將狀態設為 [是],並協助疑難排解 AD FS 登錄授權單位 (RA)。
  • PreReqResult:提供所有 WHFB 必要條件評估的結果。 如果 WHFB 註冊會在使用者下次登入時以登入後工作的形式啟動,請設定要佈建的狀態。

範例 NGC 必要條件檢查輸出

+----------------------------------------------------------------------+
| Ngc Prerequisite Check                                               |
+----------------------------------------------------------------------+

            IsDeviceJoined : YES
             IsUserAzureAD : YES
             PolicyEnabled : YES
          PostLogonEnabled : YES
            DeviceEligible : YES
        SessionIsNotRemote : YES
            CertEnrollment : enrollment authority
          AdfsRefreshToken : YES
             AdfsRaIsReady : YES
    LogonCertTemplateReady : YES ( StateReady )
              PreReqResult : WillProvision
+----------------------------------------------------------------------+

後續步驟

移至 Microsoft 錯誤查詢工具