Recently I had an issue with Windows Update on a newly deployed Windows 7 VM. I’ve been using the same template to deploy Windows 7 VMs for a couple years, so it was strange that suddenly there was a problem. After a bit of troubleshooting, however, I successfully found a solution.
The affected template itself is quite minimal. I mainly use it on the occasion that I need a Windows VM for something. It has virt-io drivers, Spice and QEMU tools, and a basic unattend.xml to skip the EULA and create a user. So there really isn’t anything that should cause problems, and besides, it had previously worked for dozens of VMs.
The symptoms were as follows. When running Windows Update the first time, a new Update Agent would be installed. After that, a handful of updates might get installed, but then Windows Update would then get stuck when checking for updates.
Manually downloading and installing individual updates (*.msu files) seemed to work, but that isn’t convenient. While Windows Update was running I noticed that CPU and memory usage was very high.
After checking for some obvious things like low disk space, I tried uninstalling the few updates that had been installed. This didn’t help, and actually seemed to make things worse. Those updates subsequently failed to install, and it was easier to just delete that VM and deploy a new one from the template. The new VM still had problems so I continued troubleshooting.
First I tried the troubleshooter from KB 971058, How do I reset Windows Update components?, which didn’t help. Next, I followed the suggestion in KB 947821, Fix Windows Update errors by using the DISM or System Update Readiness tool, and ran the System Update Readiness Tool, which also had no effect. Finally, after some Google searches I came across KB 3102810, Installing and searching for updates is slow and high CPU usage occurs in Windows 7 and Windows Server 2008 R2. This described the issue exactly, and installing this update solved the issue! Windows Update worked fine and CPU usage was normal. So if you happen to see a similar issue, definitely try installing the 3102810 update.