err vmdird t@140245530842880: Bind Request Failed (x.x.x.x) error 49: Protocol version: 3, Bind DN: "cn=vcsa,ou=Domain Controllers,dc=example,dc=com", Method: SASL
err vmdird t@140245530842880: SASLSessionStep: sasl error (-13)(SASL(-13): authentication failure: client evidence does not match what we calculated. Probably a password error)Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.vmware.cis.core.authz.accesscontrol.impl.LotusInitializer]: Constructor threw exception; nested exception is java.lang.RuntimeException: com.vmware.identity.interop.ldap.InvalidCredentialsLdapException: Invalid credentials
LDAP error [code: 49]
VMware vCenter Server Appliance 6.5.x
VMware vCenter Server Appliance 6.7.x
VMware vCenter Server Appliance 7.0.x
VMware vCenter Server Appliance 8.0.x
This issue occurs when the machine account password stored in the VMDIRD database does not match the password used by the services to authenticate with the VMware Directory Service.
NOTE: Take offline (powered off) snapshots of all the vCenter Server Instance in the same vSphere Single Sign On Domain (ELM) before attempting . This is standard best practice before making any manual changes to the VMDIRD database.
Pre-requisites
Procedure to Identify and Reset Expired Machine Account Password for vCenter Server in Enhanced Linked Mode (ELM)
ldapsearch -h localhost -p 389 -x \ -D "$(/opt/likewise/bin/lwregshell list_values '[HKEY_THIS_MACHINE\services\vmdir\]' | grep dcAccountDN | cut -d '"' -f4)" \ -w "$(/opt/likewise/bin/lwregshell list_values '[HKEY_THIS_MACHINE\services\vmdir\]' | grep dcAccountPassword | cut -d '"' -f4)" \ -b "" -s base dnldap_bind: Invalid credentials (49)# extended LDIF
# LDAPv3
dn: cn=DSE Root
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1/usr/lib/vmware-vmafd/bin/dir-cli state getDirectory Server State: Normal (3)/usr/lib/vmware-vmafd/bin/dir-cli state set --state NORMALchmod +x reset_machine_pw.sh/usr/lib/vmware-vmdir/bin/vdcrepadmin -f showpartners -h localhost -u administrator -w <Administrator_Password>Sample output
Partner: psc01.example.com
Partner: psc02.example.com./reset_machine_pw.shWhen prompted Enter the administrator@<vsphere.local> password.
When prompted Enter the FQDN(s) of replication partners (Enter a space in between each entry. Include the FQDN of the vCenter that you are running the script from. If you do not include all partners, services will not start on the node where you are running the script).
bash: ./reset_machine_pw.sh: /bin/bash^M: bad interpreter: No such file or directoryRun the command
sed -i -e 's/\r$//' reset_machine_pw.shservice-control --stop --all && service-control --start --allImportant: Repeat Steps 8–10 on VMDIR replication partner nodes if replication is broken in both directions due to expired Machine Account credentials.
Sample Script Execution Output
Machine account password reset for vCenterext.example.com started on [YYYY-MM-DDTHH:MM:SS]
Detected this node is a vCenter server with embedded PSC.
Detected DN: cn=vCenterext.example.com,ou=Computers,dc=vsphere,dc=local
Detected PNID: vCenterext.example.com
Detected PSC: psc.example.com
Detected SSO domain name: vsphere.local
Enter password for [email protected]:
updating registry with password.
updating local PSC with password.
modifying entry "cn=vCenterext.example.com,ou=Computers,dc=vsphere,dc=local"
Since there were no replication partners specified, we're done here.
Finished on [YYYY-MM-DDTHH:MM:SS]SHA256 Hashes
reset_machine_pw.zip - 0F879F459E22EC9B3917E4792F4610BA1296EBBA15BAE19667CF0EEABB53F363reset_machine_pw.sh - D4052210BB5C1C9989C5FC4DFF7667235A12EB55F50649C972715F89237A31A8MD5 Hashes
reset_machine_pw.zip - 32BCC25843E44E93184FFBDF5C903AA9reset_machine_pw.sh - 32BCC25843E44E93184FFBDF5C903AA9