What a day!
I’ve completely lost count of the number of times I’ve tried to install SQLExpress 2008 in the last 12 hours. It seemed like a never ending series of errors and permissions problems. Though I have now found a solution and thought it worth blogging as it took some digging to find it. Some of the errors were linked to SQL Server Native Client and linked to this page on microsoft.com. I found the advice on the page was near pointless. Some of the errors were reporting that it couldn’t make tempdb. I also saw:
“Login failed for user … “. Reason: Server is in single user mode. Only one administrator can connect at this time. Error 18461
The root of the issue seems to be related to Debug Programs Policy. Check the following policy to see what accounts have Debug permissions set:[Start] >> [Administrative Tools] >> [Local Security Policy]
Security SettingsLocal PoliciesUser Right AssignmentDebug Programs
You need to add any relevant accounts and/or groups to this policy. Once you have done that, log off and then log back on again to reload the new policy settings. Now make sure you completely un-install SQLExpress 2008 and any other bits installed along with it (apart from things like PowerShell as you need that). Make sure you delete anything left behind in %Program Files% and from the registry.
Restart a fresh SQLExpress 2008 install, you should now get a successful installation.
There are lots of details of solutions to various problems on this page, including details of how to make sure your machine is clean of previous installs. I initially came across the solution to this on a Feedback item on microsoft.com which you can read here. As you can see from some of the discussions this really does need to be addressed. I’ve lost a lot of time over this and it seems many others have also lost significant amounts of time on what appears to be a bit of an oversight in some ways.