Install one of the machines and allow it to download updates from the “Windows Update” site and present you with a “Ready to install updates” dialog. Then, perform the following:

  • Stop the “Automated Updates” service.
  • Open a command prompt and paste in the following commands:
cd %SystemRoot%\SoftwareDistribution\Download
for "usebackq delims=" %i in (`dir /s /a /b update.exe`) do start %i /nobackup /passive /norestart
for "usebackq delims=" %i in (`dir /s /a /b update.exe`) do start %i /n /passive /norestart

(Those commands will install most of the pending updates silently w/o making backup copies of the replaced files. Be aware that .NET Framework update, MSXML updates, and application updates won’t be installed by this method.)

  • Install the other 2 machines but don’t allow them to perform updates automatically. Copy the contents of the “%SystemRoot%\SoftwareDistibution\Download” directory from the first machine to each of the remaining machines and perform the procedure above on those machines.
  • Remove the contents of the “%SystemRoot%\SoftwareDistibution” on both machines while the “Automated Updates” service is stopped, then reboot and allow the machines to detect updates again. The remaining “.NET Framework” and other updates will be detected and installed.

(That procedure is basically what I do when prepping a new machine w/ updates from WSUS. I manually execute the updates that don’t install via the “for …” loops when they’re done, then clean the machine up. I detest having the “$NtUninstall…” directories on brand new machines, and that method prevents them from being created…)