Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The information in this article works as a reference and helps you troubleshoot when the secure channel is broken.
To determine the cause of secure channel issues, collect the following information.
Obtain the client device information
On the affected device, check for successful password change events in the System Event Viewer log (Event ID 5823 - Source: NETLOGON). This will help to find out the last time the password was changed by the system and use it as a reference value (if present - consider it might be overwritten by newer events):
Log name: System
Source: NETLOGON
Description: The system successfully changed its password on the domain controller \\DCName.domain.com. This event is logged when the password for the computer account is changed by the system. It is logged on the computer that changed the password.
If Netlogon logging is enabled, you should also see a behavior with evidence of the password change from the preceding Event ID 5823:
08/22 07:32:23 [SESSION] [4128] CONTOSO: NlChangePassword: Doing it.
08/22 07:32:23 [SESSION] [4128] CONTOSO: NlChangePassword: Successful response from DC \\DC1-CONT.contoso.com
08/22 07:32:24 [SESSION] [4128] CONTOSO: NlChangePassword: Flag password changed in LsaSecret
08/22 07:32:24 [SESSION] [4128] CONTOSO: NlChangePassword: Flag password updated on DC
08/22 07:32:24 [MISC] [4128] Eventlog: 5823 (4) "\\DC1-CONT.contoso.com"
08/22 07:32:24 [MISC] [4128] NlWksScavenger: Can be called again in # days (0x5265c00) --> The number of days here will match the "Maximum machine account password age" value defined on the computer changing the password.
Compare the computer account pwdLastSet
(the last time the password was changed by the computer known by Active Directory) attribute value in Active Directory with the Local Security Authority (LSA) secret value cupdtime
(the last time the password was changed as per the client computer or server's knowledge) on the local machine:
Obtain the LSA secret value on the affected computer or server
Follow these steps to look for the cupdtime
value from the registry.
Note
By default, only the "System" account has access to the registry key HKLM\SECURITY
, so you have two options:
- Use the PsExec tool to run the following steps in the System context.
- Give the desired user full permissions to the registry key
HKLM\SECURITY
(remember to remove them when no longer needed):
Run
reg query "HKLM\SECURITY\Policy\Secrets\$MACHINE.ACC\CupdTime"
.In this example, you receive the value
26A38C1AA0F4DA01
. The value needs to be converted by using w32tm before it can be understood. The hexadecimal value needs to be converted to decimal, but you need to revert the order for each pair of bits starting from the last one.- The original value
26A38C1AA0F4DA01
turns into01DAF4A01A8CA326
. - Convert the hexadecimal value into decimal (you can use the Calculator in Programmer mode). The result is
133688107438220070
.
- The original value
Run the following command:
w32tm /ntte 133688107438220070
You receive the following output:
The value is
154731 14:32:23.8220070 - 8/22/2024 7:32:23 AM
.
Obtain the Active Directory pwdLastSet value
Open the Active Directory Users and Computers console, navigate to the Organizational Unit where the computer object belongs, and look for the
pwdLastSet
attribute to see the value:Run the following command from a Windows Command prompt. Replace the Distinguished Name of the actual affected computer you're troubleshooting and export it to a file (it's easier to check the information if you have a considerable number of domain controllers (DCs)):
repadmin /showobjmeta * "CN=ComputerName,OU=Computers,DC=domain,DC=com" > c:\temp\ComputerName_Metadata.txt
Alternatively, run the following command from a Windows PowerShell prompt (Active Directory module is required):
Get-ADComputer '<ComputerName>' -properties PasswordLastSet | Format-List
Open the file and look for the values of the
pwdLastSet
attribute (you'll get the metadata for the object from all DCs available in the environment) and compare them. In a good scenario, the data in the attribute should be consistent across all DCs. You'll see information for other attributes in the output. Focus only on the required attribute. Here's an example of the output:The preceding information gives you the value for a single DC (the one you're connected to through the console or when running the commands). Consider gathering the metadata for the affected computer object from Active Directory so you can confirm that the value is consistent across all DCs in the environment.