User’s AD account being locked out by vCenter 5.0 server, how I found our culprit
My vCenter is running Windows 2008R2. I tried Running the Microsoft sysinternals tools to find out which host is locking out this user and it kept pointing me to vCenter. Of course to me it didn’t make any sense why vCenter would be locking this user out every 60 minutes. I also checked the standard stuff, no services running as the user, nothing under the “Credential Manager” on vCenter. There are also several VMware KB’s for dealing with the issue, they want you to use TCPVIEW, and some other tools, but none of them helped me on this one.
I’ll start my troubleshooting steps below after the normal sysInternals AD “find out which machine is locking the user out” steps.
1) I logged into vCenter and opened “Server_Manager/Diagnostics/Event_Viewer/Windows Logs/Security”
I saw the following 3 Audit Failures happening ever 60:16 seconds (not sure if that interval is important to the issue, but it gave me an ability to predict the next occurrence). Since the last event was at 9:31:30am, I can predict the next occurrence at 10:31:46am. You can see the “Account for Which Logon Failed:” “Account Name:” is the usersloginname, this is key information we’ll use later.
2) Logging into vCenter I see this under “Tasks & Events”, the timestamp is an exact match to the Event Log Event above. I see nothing that correlates to this timestamp under vCenter Tasks, which makes me think this is being initiated from an external (to vCenter Service) source.
3) Before I realized this was happening every 60:16 I grabbed a large packet capture on my vCenter Server. Now that I could predict the exact second this would happen again, I decided to capture a smaller time window with a script.
I setup a single scheduled wireshark dumpcap by utilizing Windows Task Scheduler.
The dumpcap –a parameter specifies a 4 second duration of packet capture, the –w specifies what to name the output file, lo.pcap in this example. I dumped the files into a directory called c:\output . I didn’t use the default location because when I ran the script manually (from the command line to test) I received access denied, and since I’m too lazy to troubleshoot it, but I’m pretty security minded, I setup a temp directory called output that I gave everyone full control to. I setup the schedule to start the capture 2 seconds before the planned event and it did successfully gather the data I needed.




