Skip to content

Commit 1bdb1e1

Browse files
committedJan 9, 2024
[Devices] Backlog bug 124996
1 parent b2e491e commit 1bdb1e1

File tree

2 files changed

+46
-51
lines changed

2 files changed

+46
-51
lines changed
 
File renamed without changes.

‎docs/identity/devices/troubleshoot-device-dsregcmd.md

+46-51
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
---
22
title: Troubleshoot devices by using the dsregcmd command
33
description: This article covers how to use the output from the dsregcmd command to understand the state of devices in Microsoft Entra ID.
4-
services: active-directory
4+
55
ms.service: active-directory
66
ms.subservice: devices
77
ms.topic: troubleshooting
8-
ms.date: 08/31/2022
8+
ms.date: 01/09/2024
99

1010
ms.author: joflore
1111
author: MicrosoftGuyJFlo
1212
manager: amycolannino
13-
ms.reviewer: ravenn
14-
15-
ms.collection: M365-identity-device-management
13+
ms.reviewer: jploegert
1614
---
1715
# Troubleshoot devices by using the dsregcmd command
1816

@@ -23,7 +21,7 @@ This article covers how to use the output from the `dsregcmd` command to underst
2321
This section lists the device join state parameters. The criteria that are required for the device to be in various join states are listed in the following table:
2422

2523
| AzureAdJoined | EnterpriseJoined | DomainJoined | Device state |
26-
| --- | --- | --- | --- |
24+
| --- | --- | --- | --- |
2725
| YES | NO | NO | Microsoft Entra joined |
2826
| NO | NO | YES | Domain Joined |
2927
| YES | NO | YES | Microsoft Entra hybrid joined |
@@ -57,23 +55,23 @@ The state is displayed only when the device is Microsoft Entra joined or Microso
5755
- **DeviceId**: The unique ID of the device in the Microsoft Entra tenant.
5856
- **Thumbprint**: The thumbprint of the device certificate.
5957
- **DeviceCertificateValidity**: The validity status of the device certificate.
60-
- **KeyContainerId**: The containerId of the device private key that's associated with the device certificate.
61-
- **KeyProvider**: The KeyProvider (Hardware/Software) that's used to store the device private key.
58+
- **KeyContainerId**: The containerId of the device private key associated with the device certificate.
59+
- **KeyProvider**: The KeyProvider (Hardware/Software) used to store the device private key.
6260
- **TpmProtected**: The state is set to *YES* if the device private key is stored in a hardware Trusted Platform Module (TPM).
6361
- **DeviceAuthStatus**: Performs a check to determine the device's health in Microsoft Entra ID. The health statuses are:
64-
* *SUCCESS* if the device is present and enabled in Microsoft Entra ID.
65-
* *FAILED. Device is either disabled or deleted* if the device is either disabled or deleted. For more information about this issue, see [Microsoft Entra device management FAQ](faq.yml#why-do-my-users-see-an-error-message-saying--your-organization-has-deleted-the-device--or--your-organization-has-disabled-the-device--on-their-windows-10-11-devices).
66-
* *FAILED. ERROR* if the test was unable to run. This test requires network connectivity to Microsoft Entra ID under the system context.
67-
> [!NOTE]
68-
> The **DeviceAuthStatus** field was added in the Windows 10 May 2021 update (version 21H1).
62+
- *SUCCESS* if the device is present and enabled in Microsoft Entra ID.
63+
- *FAILED. Device is either disabled or deleted* if the device is either disabled or deleted. For more information about this issue, see [Microsoft Entra device management FAQ](faq.yml#why-do-my-users-see-an-error-message-saying--your-organization-has-deleted-the-device--or--your-organization-has-disabled-the-device--on-their-windows-10-11-devices).
64+
- *FAILED. ERROR* if the test was unable to run. This test requires network connectivity to Microsoft Entra ID under the system context.
65+
> [!NOTE]
66+
> The **DeviceAuthStatus** field was added in the Windows 10 May 2021 update (version 21H1).
6967
- **Virtual Desktop**: There are three cases where this appears.
70-
- NOT SET - VDI device metadata is not present on the device.
68+
- NOT SET - VDI device metadata isn't present on the device.
7169
- YES - VDI device metadata is present and dsregcmd outputs associated metadata including:
7270
- Provider: Name of the VDI vendor.
7371
- Type: Persistent VDI or non-persistent VDI.
7472
- User mode: Single user or multi-user.
7573
- Extensions: Number of key value pairs in optional vendor specific metadata, followed by key value pairs.
76-
- INVALID - The VDI device metadata is present but not set correctly. In this case, dsregcmd outputs the incorrect metadata.
74+
- INVALID - The VDI device metadata is present but not set correctly. In this case, dsregcmd outputs the incorrect metadata.
7775

7876
### Sample device details output
7977

@@ -98,8 +96,7 @@ The tenant details are displayed only when the device is Microsoft Entra joined
9896

9997
> [!NOTE]
10098
> If the mobile device management (MDM) URL fields in this section are empty, it indicates either that the MDM was not configured or that the current user isn't in scope of MDM enrollment. Check the Mobility settings in Microsoft Entra ID to review your MDM configuration.
101-
102-
> [!NOTE]
99+
>
103100
> Even if you see MDM URLs, this does not mean that the device is managed by an MDM. The information is displayed if the tenant has MDM configuration for auto-enrollment even if the device itself isn't managed.
104101
105102
### Sample tenant details output
@@ -177,39 +174,38 @@ You can ignore this section for Microsoft Entra registered devices.
177174
> The command must run in a user context to retrieve that user's valid status.
178175
179176
- **AzureAdPrt**: Set the state to *YES* if a Primary Refresh Token (PRT) is present on the device for the logged-in user.
180-
- **AzureAdPrtUpdateTime**: Set the state to the time, in Coordinated Universal Time (UTC), when the PRT was last updated.
177+
- **AzureAdPrtUpdateTime**: Set the state to the time, in Coordinated Universal Time (UTC), when the [PRT was last updated](concept-primary-refresh-token.md#how-is-a-prt-renewed).
181178
- **AzureAdPrtExpiryTime**: Set the state to the time, in UTC, when the PRT is going to expire if it isn't renewed.
182179
- **AzureAdPrtAuthority**: The Microsoft Entra authority URL
183180
- **EnterprisePrt**: Set the state to *YES* if the device has a PRT from on-premises
184-
Active Directory Federation Services (AD FS). For Microsoft Entra hybrid joined devices, the device could have a PRT from both Microsoft Entra ID and on-premises Active Directory simultaneously. On-premises joined devices will have only an Enterprise PRT.
181+
Active Directory Federation Services (AD FS). For Microsoft Entra hybrid joined devices, the device could have a PRT from both Microsoft Entra ID and on-premises Active Directory simultaneously. On-premises joined devices have only an Enterprise PRT.
185182
- **EnterprisePrtUpdateTime**: Set the state to the time, in UTC, when the Enterprise PRT was last updated.
186183
- **EnterprisePrtExpiryTime**: Set the state to the time, in UTC, when the PRT is going to expire if it isn't renewed.
187184
- **EnterprisePrtAuthority**: The AD FS authority URL
188185

189186
>[!NOTE]
190187
> The following PRT diagnostics fields were added in the Windows 10 May 2021 update (version 21H1).
191-
192-
>[!NOTE]
193-
> * The diagnostics information that's displayed in the **AzureAdPrt** field is for Microsoft Entra PRT acquisition or refresh, and the diagnostics information that's displayed in the **EnterprisePrt** field is for Enterprise PRT acquisition or refresh.
194-
> * The diagnostics information is displayed only if the acquisition or refresh failure happened after the last successful PRT update time (AzureAdPrtUpdateTime/EnterprisePrtUpdateTime).
188+
>
189+
> - The diagnostics information that's displayed in the **AzureAdPrt** field is for Microsoft Entra PRT acquisition or refresh, and the diagnostics information that's displayed in the **EnterprisePrt** field is for Enterprise PRT acquisition or refresh.
190+
> - The diagnostics information is displayed only if the acquisition or refresh failure happened after the last successful PRT update time (AzureAdPrtUpdateTime/EnterprisePrtUpdateTime).
195191
>On a shared device, this diagnostics information could be from a different user's login attempt.
196192
197193
- **AcquirePrtDiagnostics**: Set the state to *PRESENT* if the acquired PRT diagnostics information is present in the logs.
198-
This field is skipped if no diagnostics information is available.
194+
- This field is skipped if no diagnostics information is available.
199195
- **Previous Prt Attempt**: The local time, in UTC, at which the failed PRT attempt occurred.
200196
- **Attempt Status**: The client error code that's returned (HRESULT).
201197
- **User Identity**: The UPN of the user for whom the PRT attempt happened.
202-
- **Credential Type**: The credential that's used to acquire or refresh the PRT. Common credential types are Password and Next Generation Credential (NGC) (for Windows Hello).
203-
- **Correlation ID**: The correlation ID that's sent by the server for the failed PRT attempt.
198+
- **Credential Type**: The credential used to acquire or refresh the PRT. Common credential types are Password and Next Generation Credential (NGC) (for Windows Hello).
199+
- **Correlation ID**: The correlation ID sent by the server for the failed PRT attempt.
204200
- **Endpoint URI**: The last endpoint accessed before the failure.
205-
- **HTTP Method**: The HTTP method that's used to access the endpoint.
206-
- **HTTP Error**: WinHttp transport error code. Get additional [network error codes](/windows/win32/winhttp/error-messages).
207-
- **HTTP Status**: The HTTP status that's returned by the endpoint.
201+
- **HTTP Method**: The HTTP method used to access the endpoint.
202+
- **HTTP Error**: WinHttp transport error code. Get other [network error codes](/windows/win32/winhttp/error-messages).
203+
- **HTTP Status**: The HTTP status returned by the endpoint.
208204
- **Server Error Code**: The error code from the server.
209205
- **Server Error Description**: The error message from the server.
210206
- **RefreshPrtDiagnostics**: Set the state to *PRESENT* if the acquired PRT diagnostics information is present in the logs.
211-
This field is skipped if no diagnostics information is available.
212-
The diagnostics information fields are same as **AcquirePrtDiagnostics**
207+
- This field is skipped if no diagnostics information is available.
208+
- The diagnostics information fields are same as **AcquirePrtDiagnostics**
213209

214210
>[!NOTE]
215211
> The following Cloud Kerberos diagnostics fields were added in the original release of Windows 11 (version 21H2).
@@ -256,37 +252,37 @@ The diagnostics information fields are same as **AcquirePrtDiagnostics**
256252

257253
This diagnostics section is displayed only if the device is domain-joined and unable to Microsoft Entra hybrid join.
258254

259-
This section performs various tests to help diagnose join failures. The information includes the error phase, the error code, the server request ID, the server response http status, and the server response error message.
255+
This section performs various tests to help diagnose join failures. The information includes the: error phase, error code, server request ID, server response HTTP status, and server response error message.
260256

261257
- **User Context**: The context in which the diagnostics are run. Possible values: SYSTEM, UN-ELEVATED User, ELEVATED User.
262258

263259
> [!NOTE]
264260
> Because the actual join is performed in SYSTEM context, running the diagnostics in SYSTEM context is closest to the actual join scenario. To run diagnostics in SYSTEM context, the `dsregcmd /status` command must be run from an elevated command prompt.
265261
266262
- **Client Time**: The system time, in UTC.
267-
- **AD Connectivity Test**: This test performs a connectivity test to the domain controller. An error in this test will likely result in join errors in the pre-check phase.
263+
- **AD Connectivity Test**: This test performs a connectivity test to the domain controller. An error in this test likely results in join errors in the pre-check phase.
268264
- **AD Configuration Test**: This test reads and verifies whether the Service Connection Point (SCP) object is configured properly in the on-premises Active Directory forest. Errors in this test would likely result in join errors in the discover phase with the error code 0x801c001d.
269265
- **DRS Discovery Test**: This test gets the DRS endpoints from discovery metadata endpoint and performs a user realm request. Errors in this test would likely result in join errors in the discover phase.
270266
- **DRS Connectivity Test**: This test performs a basic connectivity test to the DRS endpoint.
271-
- **Token Acquisition Test**: This test tries to get a Microsoft Entra authentication token if the user tenant is federated. Errors in this test would likely result in join errors in the authentication phase. If authentication fails, sync-join will be attempted as fallback, unless fallback is explicitly disabled with the following registry key settings:
267+
- **Token Acquisition Test**: This test tries to get a Microsoft Entra authentication token if the user tenant is federated. Errors in this test would likely result in join errors in the authentication phase. If authentication fails, sync-join is attempted as fallback, unless fallback is explicitly disabled with the following registry key settings:
272268

273-
```
274-
Keyname: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ
275-
Value: FallbackToSyncJoin
276-
Type: REG_DWORD
277-
Value: 0x0 -> Disabled
278-
Value: 0x1 -> Enabled
279-
Default (No Key): Enabled
280-
```
269+
```
270+
Keyname: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ
271+
Value: FallbackToSyncJoin
272+
Type: REG_DWORD
273+
Value: 0x0 -> Disabled
274+
Value: 0x1 -> Enabled
275+
Default (No Key): Enabled
276+
```
281277

282278
- **Fallback to Sync-Join**: Set the state to *Enabled* if the preceding registry key to prevent fallback to sync-join with authentication failures is *not* present. This option is available from Windows 10 1803 and later.
283279
- **Previous Registration**: The time when the previous join attempt occurred. Only failed join attempts are logged.
284280
- **Error Phase**: The stage of the join in which it was aborted. Possible values are *pre-check*, *discover*, *auth*, and *join*.
285-
- **Client ErrorCode**: The client error code that's returned (HRESULT).
286-
- **Server ErrorCode**: The server error code that's displayed if a request was sent to the server and the server responded with an error code.
287-
- **Server Message**: The server message that's returned along with the error code.
288-
- **Https Status**: The HTTP status that's returned by the server.
289-
- **Request ID**: The client requestId that's sent to the server. The request ID is useful to correlate with server-side logs.
281+
- **Client ErrorCode**: The client error code returned (HRESULT).
282+
- **Server ErrorCode**: The server error code displayed if a request was sent to the server and the server responded with an error code.
283+
- **Server Message**: The server message returned along with the error code.
284+
- **Https Status**: The HTTP status returned by the server.
285+
- **Request ID**: The client requestId sent to the server. The request ID is useful to correlate with server-side logs.
290286

291287
### Sample pre-join diagnostics output
292288

@@ -345,10 +341,10 @@ The following example shows that diagnostics tests are passing but the registrat
345341

346342
### Post-join diagnostics
347343

348-
This diagnostics section displays the output of sanity checks performed on a device that's joined to the cloud.
344+
This diagnostics section displays the output of sanity checks performed on a device joined to the cloud.
349345

350346
- **AadRecoveryEnabled**: If the value is *YES*, the keys stored in the device aren't usable, and the device is marked for recovery. The next sign-in will trigger the recovery flow and re-register the device.
351-
- **KeySignTest**: If the value is *PASSED*, the device keys are in good health. If KeySignTest fails, the device is usually marked for recovery. The next sign-in will trigger the recovery flow and re-register the device. For Microsoft Entra hybrid joined devices, the recovery is silent. While the devices are Microsoft Entra joined or Microsoft Entra registered, they'll prompt for user authentication to recover and re-register the device, if necessary.
347+
- **KeySignTest**: If the value is *PASSED*, the device keys are in good health. If KeySignTest fails, the device is usually marked for recovery. The next sign-in will trigger the recovery flow and re-register the device. For Microsoft Entra hybrid joined devices, the recovery is silent. While the devices are Microsoft Entra joined or Microsoft Entra registered, they prompt for user authentication to recover and re-register the device, if necessary.
352348
> [!NOTE]
353349
> The KeySignTest requires elevated privileges.
354350
@@ -385,8 +381,7 @@ This diagnostics section performs the prerequisites check for setting up Windows
385381

386382
>[!NOTE]
387383
> The following Cloud Kerberos diagnostics fields were added in the Windows 10 May 2021 update (version 21H1).
388-
389-
>[!NOTE]
384+
>
390385
> Prior to Windows 11 version 23H2, the setting **OnPremTGT** was named **CloudTGT**.
391386
392387
- **OnPremTGT**: This setting is specific to Cloud Kerberos trust deployment and present only if the CertEnrollment state is *none*. Set the state to *YES* if the device has a Cloud Kerberos ticket to access on-premises resources. Prior to Windows 11 version 23H2, this setting was named **CloudTGT**.

0 commit comments

Comments
 (0)