We are using a Virtual Private Server to host our production Windows Server 2003 R2 web server. The hosting provider automatically installs the Windows patches (updates) on their own schedule.
We also have a test server on a virtual machine. Thus far, I have been using automatic updates on the test server to keep it fully up to date. However, this could present a problem if the production server hasn't had one of the updates installed yet. Basically, we wouldn't be truly testing our software in a production-like environment.
So what I am wondering is:
- Is there a software package that can compare Windows updates between 2 Windows 2003 servers? Ideally, the solution would be able to compare the 2 servers side by side (think BeyondCompare), download and install/uninstall updates to sync Test up with Production.
- If no software currently exists, what API can be used to retrieve this info in order to build a custom application?
- Do you have any other suggestions for how to keep 2 environments in sync when it comes to Windows updates, being that I have no control over one of the environments?
I found WinUpdatesList that can list all of the updates on a single machine, but has no built-in compare mechanism and doesn't say whether it supports Windows Server 2003. However, comparing the hundreds of updates manually from 2 separate lists just isn't an option.
I also found this post that gives a code sample of how to determine if a particular update is installed, which can easily be adapted to get a complete list of the updates. However, when I tried it didn't work - presumably because the code depends on the Automatic Updates service, which is not running in Production. In fact, since the production server is running within a Parallels Virtuozzo container, starting the Automatic Updates service could cause the server files to become corrupted.
This ended up being a non-issue for us because Virtuozzo proved to be completely unstable and could get into a state where it would not boot. We (just barely) managed to keep it running long enough to migrate to Hyper-V. We actually had to migrate before the Hyper-V server was completely verified because Virtuozzo shut the virtual server down and then none of the backups would boot.
With Hyper-V we can manage our own Windows Updates. Therefore, we can install them on the test environment first and then install them in production when we are ready. As long as we keep the servers completely updated it will be easy to see which updates are missing from production and no comparison tool will be necessary.