If you have already used msizap.exe or msicuu2.exe (which calls msizap) there may be things still left around on your machine, including services, assemblies, registry keys and shortcuts.
MSIZap and MSICuu2 should only be used as a last resort after exhausting all other available options. For completeness, these are the steps that I would recommend to try *before* resorting to MSIZap or MSICuu2 (jump below the second horizontal line for cleanup steps after resorting to MSIZap or MSICuu2)
Steps to manually remove all of SQL Server 2005 from a machine (Last resort prior to reinstalling the OS)
- Go to ARP and look for "Microsoft SQL Server Setup Support Files". If it is there, continue. If it is not there, find your original media and install it by double clicking on Servers\setup\sqlsupport.msi
- Run "%ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\ARPWrapper.exe" /Remove and keep uninstalling things until everything is gone. (This is the same tool that gets run from the Add/Remove Control panel, but users may have already deleted the reference to it) If you get an immediate error saying "Registry Enumeration Failed", then you don't have anything to uninstall here. Continue on to step 3 to uninstall redists and SQL Support Files.
You will need to uninstall just one item at a time. If you have an instance with more than one server (SQL, AS or RS), setup will fail with the error “The setup has encountered an unexpected error in datastore. The action is RestoreSetupParams”. This is expected at this point due to some refcounting issues. You will just need to keep reinstalling SQL Support Files again for each server in the instance and after every successful uninstall in step 2.
To work around the refcounting issue without having to keep reinstalling, we can temporarily refcount SqlSupport.msi to itself. Look at step 3 and search for “Microsoft SQL Support Files” after you have installed it. Make a note of the GUID. Then go back to regedit and create/modify the following key:
KeyName: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Bootstrap\MSIRefCount
Value: Uninstall
Type: REG_SZ
Data: {11111111-1111-1111-1111-111111111111},{GUID}
where {GUID} is the GUID of SQLSupport Files
e.g. for English x86 SQL Support Files:
Data: {11111111-1111-1111-1111-111111111111},{53F5C3EE-05ED-4830-994B-50B2F0D50FCE}
- If you encounter problems with uninstalling in step 2, try the following:
- Open RegEdit and go to HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
- Click on each of the GUIDs in the left pane. Look at the display name in the right hand pane. Look for anything that matches "Microsoft SQL Server 2005 *". Make a note of the GUID from the left pane.
- For each of the GUIDs noted in 4b)
i. run the following command from a command line (replace {GUID} with the GUID)
start /wait msiexec /x {GUID} /l*v c:\sql_uninstall.log
e.g. start /wait msiexec /x {90A40409-6000-11D3-8CFE-0150048383C9} /l*v c:\sql_uninstall.log
ii. Open the file c:\sql_uninstall.log and look at the bottom of the file (about 15 lines from the bottom). Look for a line similar to
MSI (s) (EC:F8) [12:52:18:007]: Product: Microsoft SQL Server 2005 Tools -- Removal completed successfully.
iii. If the removal was not successful, make a note of the name and the GUID for later and save off the sql_uninstall.log file.
- If you succeeded in uninstalling all of the items in step 2 or 3, you can now remove the redists. Try to uninstall from the Add/Remove Programs Control panel in the following order:
- “MSXML 6.0 Parser”, “SQLXML4”, “Microsoft SQL Server VSS Writer”, “Microsoft SQL Server 2005 Backwards Compatibility”, and anything else that claims it is Microsoft SQL Server 2005 *except* for "Microsoft SQL Server Native Client" and "Microsoft SQL Server Setup Support Files" If any of these fails because of missing pre-requisites, do the following:
i. Open RegEdit and go to HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
ii. Click on each of the GUIDs in the left pane. Look at the display name in the right hand pane. Look for anything that matches the name of the redist. Make a note of the GUID from the left pane.
iii. run the following command from a command line (replace {GUID} with the GUID)
start /wait msiexec /x {GUID} SKIPREDISTPREREQS=1 /l*v c:\sqlredist_uninstall.log
e.g. start /wait msiexec /x {90A40409-6000-11D3-8CFE-0150048383C9} SKIPREDISTPREREQS=1 /l*v c:\sqlredist_uninstall.log
· Open the file c:\sqlredist_uninstall.log and look at the bottom of the file. Look for a line similar to
MSI (s) (EC:F8) [12:52:18:007]: Product: Microsoft SQL Server 2005 Backward compatibility -- Removal completed successfully.
· If the removal was not successful, make a note of the name and the GUID for later and save off the sqlredist_uninstall.log file.
- (only if all other steps were successful) Microsoft SQL Server Native Client
- (only if all other steps were successful) Microsoft SQL Server Setup Support Files
If you have resorted to MSIZap or MSICuu2 (for whatever reason, I don't really recommend them, but sometimes they are necessary/useful), you may have some stuff left over.
- Service Deletion
You will need to delete a number of services using either the Services control panel or the sc.exe “delete” command:
(SQL Server Active Directory Helper)
MSSQLServerADHelper
(SQL Server Browser)
SQLBrowser
(SQL Server Integration Services)
MsDtsServer
(SQL Server)
MSSQL
MSSQL$Instance
(SQL Server Agent)
SqlAgent
SqlAgent$Instance
(SQL Server Analysis Services)
MSOLAP
MSOLAP$Instance
(SQL Server Reporting Services)
ReportServer
ReportServer$Instance
(SQL Server FullText Search)
Msftesql
Msftesql$Instance
- Delete SQL Server Assemblies
if exist "%windir%\assembly\GAC\*SQLServer*" del /s /q /f "%windir%\assembly\GAC\*SQLServer*"
if exist "%windir%\assembly\GAC_32\*SQLServer*" del /s /q /f "%windir%\assembly\GAC_32\*SQLServer*"
if exist "%windir%\assembly\GAC_MSIL\*SQLServer*" del /s /q /f "%windir%\assembly\GAC_MSIL\*SQLServer*"
- Delete files on disk
if exist "%ProgramFiles%\Microsoft SQL Server\90" rmdir /S /Q "%ProgramFiles%\Microsoft SQL Server\90"
if exist "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server"
if exist "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server"
if exist "%USERPROFILE%\..\All Users\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\..\All Users\Application Data\Microsoft\Microsoft SQL Server"
There are also files in the %ProgramFiles%\Microsoft SQL Server\MSSQL.* that should be removed.
- Registry Removal
reg delete "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\90" /f
reg delete "HKCU\SOFTWARE\Microsoft\Microsoft SQL Server\90" /f
There are other keys under HKLM\SOFTWARE\Microsoft\Microsoft SQL Server, but they may be 80 keys.
e.g.
Microsoft SQL Server\90
Microsoft SQL Server\BC
Microsoft SQL Server\BOL
Microsoft SQL Server\ExceptionMessageBox
Microsoft SQL Server\Instance Names
Microsoft SQL Server\MSSQL.
Microsoft SQL Server\
Microsoft SQL Server\Services
Microsoft SQL Server\SQLXML4
- Shortcut Removal
del /s /q “C:\Documents and Settings\All Users\Start Menu\Programs\Microsoft SQL Server 2005”