Have you ever clicked “cancel” during an installation wizard, or managed to hose something on your computer or one of your servers by manually messing around with settings because you think you’re smarter than you really are? If you’re like me, you have. :)
Yesterday when I was messing around with SharePoint Services 3.0 on our development server, I managed to not only hose IT, but I also hosed our Windows Software Update Services server.
WSUS is like having your own Windows Update server. Rather than have all your computers check and download updates from Microsoft’s servers (chewing up all your bandwidth and/or ISP’s quota) you download them to one central location and then having all your computers download from that server on your network. As the Administrator, you can approve updates and they will automatically be available to your clients, but new updates that you haven’t approved won’t be available. In the event that you come across a Windows Update that breaks an application on your computer, you can prevent your computers from downloading and installing it.
It runs as a web site, it uses a SQL database for it’s backend and then it uses some local storage for the actual updates (in whatever languages you specify you will support)
If one of those parts gets hosed (like when you’re mucking about in IIS admin and break the WSUS website, or you manually delete the database instance that it’s using), then there’s not much you can do but uninstall and reinstall the application.
What happens if WSUS has disappeared from the Control Panel’s “Add/Remove Programs” list? If you think you’re a smart cookie, you’ll re-run the installation program which (depending on the program) will give you repair or uninstall options. In the case of WSUS, there’s no “repair” option and re-running the setup program launches the uninstall routine. If some piece of WSUS is missing however, then it fails with a generic error. Stumped.
I found a similar post on Experts Exchange and the accepted solution was a Microsoft Office utility called Windows Installer Cleanup Utility. The utility’s home page on Microsoft Support explains that it wipes out the registry information for uninstalling. If you have a corrupted installation or un-installation it MAY allow you to re-install the application successfully. With nothing else to lose, I downloaded it, installed it and fired it up.
It showed a list of all the programs that were installed on the server, based on the registry information. I found Windows Software Update Services v3.0 SP1 in the list, clicked on it and then clicked "Remove”. It ran successfully and then I closed the application before I did any other unintended damage and then ran the WSUS setup program again. This time instead of starting the uninstallation routine, it came up with the fresh install screen. Choosing the same locations that were set up before installed the software “over” the old locations. The installation created the web server over again using the same ports and the downloaded updates are in the same place.
Because all the clients were either pre-configured or receive their Windows Update configuration info via Group Policy, everything “picked up where it left off”
The Windows Installer Cleanup Utility is a last-ditch effort when you’ve exhausted every other process to remove a corrupted installation. It’s a nuclear attack on the registry and Microsoft’s warnings and as-is and disclaimers highlight that. If you find yourself in this kind of a situation, it makes a handy addition to your Bat Utility Belt. If you try it and you do more harm than good, well, too bad. :)