The Impossible: It's What I DoFor a couple of days this week, I've been doing some consulting work at a local manufacturing company, owned by a member of my church. The initial work was to take the company's intranet and expand it, adding their new Comcast high-speed internet connection along with some more workstations. That was a piece of cake. However, since I was there (and was off this week) I told him I'd take a look at any other problems they were having. This is where it gets interesting.
Two problems, four hours. That's right, I just happened to run into two of the worst problems ever that, on the outside, seemed extremely simple. First, a printer. For some reason, the receptionist's printer was not being detected (though it had been a few days earlier). Easy, right? Just grab the latest drivers from HP's website and install. I wish it were that easy. After uninstalling the current drivers, rebooting, and installing the new drivers I was presented with the Add New Hardware dialog, however it wasn't trying to install a printer. It was trying to install an unknown USB device. That was the first hint; the computer didn't even know it had a printer connected to it. That told me there was something wrong with the OS; either Windows was messing up the USB drivers or the USB drivers were just broken.
Since the machine was only running XPSP1, I downloaded SP3 and installed it (which took forever). Then I uninstalled and reinstalled the printer drivers; no dice. So what else could fix the USB drivers? The chipset drivers for the motherboard. Off to Dell's site to grab the latest chipset drivers. After an install, an uninstall of the printer drivers, and a reinstall of the printer drivers, I plugged the printer in to, thankfully, see it get detected. Two hours of my life, gone.
The next problem, was deemed impossible to fix by the customer. After installing AutoCad 2008 on his workstation, it would not work properly. Upon opening AutoCad, he was presented with a barrage of error messages and then the program would close. Autodesk tech support couldn't fix the issue and said it was Dell's problem. Dell tech support couldn't fix the issue and said the only way to make it work was to wipe and reinstall the system. Seriously? Seriously. So, operating under my normal assumption, "everyone else is an idiot," I believed the problem could be fixed and I started researching.
After a few minutes of researching the first error message, I was able to determine that the source of the error was the Microsoft .NET Framework. Apparently AutoCad uses it (cause their programmers are idiots) and apparently it was broken. Since .NET is not an essential part of anything, the easiest fix would be to uninstall and reinstall. Go to Add/Remove Programs, find the .NET Framework, click uninstall; error. The installation of .NET was so broken it didn't even know where it's own files were. The error told me it couldn't find the original MSI file and therefore couldn't be uninstalled. Those of you who have worked with MSIs before understand that the original source is needed for both installation and removal, but this time the source wasn't present.
So I went to Microsoft's site and grabbed the same version of .NET that was installed (2.0 SP1), saving it to the desktop. That, unfortunately, was not the file I needed. I needed a file that was stored within the archive I just downloaded. I had to extract the contents of the .NET 2.0 SP1 file to a folder on the desktop. Then I went back to Add/Remove Programs and clicked uninstall again. Again, I received the error, but now I had the original MSI to point the uninstaller to. I pointed it to the extracted file on the desktop and the uninstall was successful. Then, I grabbed the .NET 2.0 re-distributable file from Microsoft and reinstalled the .NET 2.0 Framework.
The final change was to edit a config file for AutoCad. Normally that file told AutoCad to automatically detect the correct version of .NET to use, however the file also had a line for the .NET version commented out. I uncommented that line so AutoCad would be forced to use the version I specified; the version that I just installed. Now the moment of truth. Click the shortcut... voila! The customer verified that it worked by opening and using a couple CAD drawings. Looks like my support is better than the OEM's support. :)