Saturday, June 25, 2011

Crapware 101: Quickbooks 2012, Windows 7 and the Google Desktop

I had a call earlier this week from my boss saying that his Windows 7 notebook was saying 'Please Wait...' when he booted it and it wouldn't get past that.  No Ctrl-Alt-Del screen or anything.
I could access the file shares via the network and could even RDP to it, where I was then presented with the same 'Please Wait...' screen.
My boss then said that he had installed Quickbooks 2012 the day before.  So, I had him login via safe-mode and configure msconfig.exe to boot a 'selective start-up' and we disabled all non-microsoft services.  This should have prevented an third party services from trying to start during Windows boot.
However, rebooting didn't resolve the issue.
After a heap of mucking around, I simply couldn't find the problem.  We were fairly sure it had something to do with Quickbooks, but it was a fairly straight forward install.  My boss decided he'd call Quicken the next day to see if they'd heard of the issue.
Turns out, that during the install of Quickbooks, it prompts to install the Google Desktop!  Crapware!  An expensive, well known application is installing Crapware!  My boss had, without even thinking, installed the Google Desktop.  The Quickbooks support team had checked and advised him to uninstall the Google Desktop via safe-mode and all was well!
So, this is another awesome reason for not ever allowing an application to install other software... also known as Crapware!  I'm really surprised that the Quickbooks installer even has this option, being as Quickbooks is such a well known and respected application.  I think they have definitely dropped the ball on this one.

Thursday, June 9, 2011

SQL Server updates not applying

I recently had a client call up saying that every night, Microsoft Update would try to apply Service Pack 4 to their SQL Server 2005 instance, however it would fail.  Unfortunately, the Windows Event Log didn't provide any useful information. 
So, I started digging and found the SQL update log in: %ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\
This indicated that a failure was occurring, similar to this error... "Couldn't find local patch 'C:\WINDOWS\Installer\9be677.msp'. Looking for it at its source."
So, after a quick search, I came across this page at  
Basically, the cause is that at some stage, the various Installer and Service Pack files that get backed up to "C:\WINDOWS\Installer\" when a product and its related service pack is installed, have been deleted.  The client confirmed that at some stage they had performed a cleanup of the disk space and removed some of the larger files from this directory.  Unfortunately, this included the installer files for SQL 2005 itself, SP2, SP3 and other Cumulative Updates in between.  
To resolve, we simply have to copy the .msi files from the SQL install source, and re-download and extract the patch files from the Microsoft Download site.  The difficult part is that the .msi and .msp files don't have nice, easy to understand filenames.  EG:  9be677.msp doesn't mean much to anyone, however, it means something to the Registry.  The article explains to search the registry for "Microsoft SQL Server 2005".  That is a good start.  Using the Patch Code and GUID from the error log is also key to finding the exact app and patch that needs to be re-applied.  
You should use the registry key as mentioned in the article to find the product details and confirm what patch to download...
You should also confirm the details of the patch file name in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\<patchcode>
The rest is fairly straight forward, download the relevant patch, extract it and copy the relevant .msp file to "C:\Windows\Installer"
Once the files are all downloaded, the Service Pack can be installed.  
NOTE:  SQL Server has multiple components that are upgraded, EG: Database Engine, Tools, Analysis Services, etc.  Each of these have their own msi and msp packages.  So, you may have to go through and try the upgrade of each item one by one if multiple packages are missing from the "C:\Windows\Installer" location.
I also don't see why this couldn't also apply to other applications such as Windows, other SQL Server products and other Microsoft applications.  

Hope this helps someone!