Reputation: 5870
I need to install MSDE 2000 Release A on Windows 10.
The installation window pops up and then immediately closes without an error message.
This answer to this SO question seemed to solve a very similar problem and indicates that it is in fact possible to install and run MS SQL Server 2000 on Windows 10. I know that that question is about SQL Server 2000 and not MSDE, but I hope that if it works for SQL Server 2000, it will also apply to the Desktop Engine variant.
Any ideas about what could be killing the installer and/or how I could try to figure this out?
I have already tried setting the compatibility mode of the installer to WinXP SP2 and running with admin priviledges
I have not yet tried to first install Win 7, then MSDE, then upgrade to Win 10, and would very much prefer to directly install on Win 10
Upvotes: 2
Views: 31016
Reputation: 35
It has worked for me doing what it says @Eugene Kang, but with the following setting I add the sqlunirl.dll dll in Windows\system32 before installation.
I have used sql server 2000 sp4.
So i add one line to your script:
takeown /f %SystemRoot%\SysWOW64\sqlunirl.dll /a
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:f
copy %SystemRoot%\SysWOW64\sqlunirl.dll %SystemRoot%\system32\sqlunirl.dll
IF NOT EXIST %SystemRoot%\SysWOW64\sqlunirl.bak move %SystemRoot%\SysWOW64\sqlunirl.dll %SystemRoot%\SysWOW64\sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:\Windows\SysWOW64\sqlunirl.bak C:\Windows\SysWOW64\sqlunirl.dll
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Thanks in advance,
Upvotes: 0
Reputation: 21
This is sort of a reverse-answer to the question, hope it's OK! I couldn't find anyone else mentioning it so hopefully it's alright. Just wanted to say that Dan's solution also works for uninstalling MSDE 2000 from Windows 10.
I had a Win7 computer that had MSDE 2000 installed, which I upgraded to Windows 10. Everything worked fine till I needed to upgrade the software which involved uninstalling MSDE 2000. It simply wouldn't uninstall - the msi would run then just exit.
All I had to do was rename sqlunirl.dll, run the uninstaller from add/remove programs, then rename it and change the permissions back:
takeown /f %SystemRoot%\SysWOW64\sqlunirl.dll /a
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST %SystemRoot%\SysWOW64\sqlunirl.bak move %SystemRoot%\SysWOW64\sqlunirl.dll %SystemRoot%\SysWOW64\sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:\Windows\SysWOW64\sqlunirl.bak C:\Windows\SysWOW64\sqlunirl.dll
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%\SysWOW64\sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Hope that helps someone!
Upvotes: 2
Reputation: 56
I have found a workaround...
I found that it was extracting several dlls to the temp folder during install and the MSI log was complaining about loading one of them. No dependency loading issues found with any of them so I tried copying them all to C:\Windows\SysWow64, but one of them (sqlunirl.dll) got access denied as it is a part of the OS. If I change the owner and permissions of that dll, I can then replace it with the extracted one, install MSDE, and afterwards replace it with the original Win10 one. However the SQL Service Manager app then refuses to start, but since exes always look for dlls in their own folder first, put that same dll in C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn. Just in case, I've also copied it to other folders that have executables in too. I've not tested this out yet but have knocked up a quick batch file to install (put it next to Setup.exe along with the sqlunirl.dll grabbed from the temp folder from a previous install attempt):
takeown /f C:\Windows\SysWOW64\sqlunirl.dll /a
icacls C:\Windows\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST C:\Windows\SysWOW64\sqlunirl.bak move C:\Windows\SysWOW64\sqlunirl.dll C:\Windows\SysWOW64\sqlunirl.bak
copy /y "%~dp0sqlunirl.dll" C:\Windows\SysWOW64
"%~dp0Setup.exe" (plus your extra parameters such as SAPWD=PASSWORD)
move /y C:\Windows\SysWOW64\sqlunirl.dll "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn"
copy /y C:\Windows\SysWOW64\sqlunirl.dll "C:\Program Files (x86)\Microsoft SQL Server\80\COM"
copy /y C:\Windows\SysWOW64\sqlunirl.dll "C:\Program Files (x86)\Microsoft SQL Server\Mssql$InstanceName\BinnMSSQL$InstanceName\Binn"
move /y C:\Windows\SysWOW64\sqlunirl.bak C:\Windows\SysWOW64\sqlunirl.dll
icacls C:\Windows\SysWOW64\sqlunirl.dll /remove *S-1-5-32-544
icacls C:\Windows\SysWOW64\sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls C:\Windows\SysWOW64\sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
(NB: SIDs are used for Administrators group and TrustedInstaller so that it works on any language. Generic Read and Generic Execute rights are the default on the administrators group, but I am also applying Write Owner so that I can set it back to TrustedInstaller as I couldn't find a way to use TakeOwn.exe to set it back!)
Upvotes: 4