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
asked Jan 10, 2016 at 19:22
Reto HöhenerReto Höhener
5,1714 gold badges36 silver badges74 bronze badges
3
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:WindowsSysWow64, 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 Server80ToolsBinn. 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:WindowsSysWOW64sqlunirl.dll /a
icacls C:WindowsSysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST C:WindowsSysWOW64sqlunirl.bak move C:WindowsSysWOW64sqlunirl.dll C:WindowsSysWOW64sqlunirl.bak
copy /y "%~dp0sqlunirl.dll" C:WindowsSysWOW64
"%~dp0Setup.exe" (plus your extra parameters such as SAPWD=PASSWORD)
move /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL Server80ToolsBinn"
copy /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL Server80COM"
copy /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL ServerMssql$InstanceNameBinnMSSQL$InstanceNameBinn"
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls C:WindowsSysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls C:WindowsSysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls C:WindowsSysWOW64sqlunirl.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!)
answered Jan 26, 2018 at 16:18
2
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%SysWOW64sqlunirl.dll /a
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST %SystemRoot%SysWOW64sqlunirl.bak move %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%SysWOW64sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls %SystemRoot%SysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%SysWOW64sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Hope that helps someone!
answered Jul 21, 2019 at 11:52
It has worked for me doing what it says @Eugene Kang, but with the following setting I add the sqlunirl.dll dll in Windowssystem32 before installation.
I have used sql server 2000 sp4.
So i add one line to your script:
takeown /f %SystemRoot%SysWOW64sqlunirl.dll /a
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
copy %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%system32sqlunirl.dll
IF NOT EXIST %SystemRoot%SysWOW64sqlunirl.bak move %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%SysWOW64sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls %SystemRoot%SysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%SysWOW64sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Thanks in advance,
answered Aug 28, 2020 at 8:25
I know of no hacks to get SQL Server 2000 to install on an existing Windows 10 installation. There are probably forces against you from both within the setup program (which looks for certain things on the host system) and within the operating system (which prevents many flavors of older software from getting installed, mostly for security reasons but also compatibility, stability, etc). I have tried in the past and even with compatibility override options I came across the same failures every time.
A couple of ideas:
- Use a virtual machine. This really is the simplest and most obvious solution. Most (if not all) editions of Windows 10 now support Hyper-V natively; if not, there is always VMWare Workstation (not free) and Oracle VirtualBox (free).
- Install 2000 then upgrade. Not really practical, especially if you want to use the Windows 10 installation you already have, but if you were doing this from scratch, you could install XP/Vista/Win7, all of which should allow you to install 2000, and then upgrade. Take care, though, because some methods of upgrading to Windows 10 will relegate all of your programs and services to Windows.old, and they won’t run any more.
In either case, firewall the crap out of that thing, because the most recent security patches for 2000 are hard to find, and the ones that I found wouldn’t install anyway…
Archived Forums 381-400
>
SQL Server Tools
-
Question
-
0
Sign in to vote
Team,
Greetings!!
Microsoft SQL 2000 Desktop Engine is not Compatible with Windows 10 OS. Any other alternative software is available? Will MS SQL Server Standard latest version include this MSDE component? Please suggest.
Friday, May 3, 2019 6:28 AM
All replies
-
0
Sign in to vote
refer following link
https://stackoverflow.com/questions/34709781/install-microsoft-sql-server-2000-desktop-engine-msde-2000-release-a-on-window
https://social.technet.microsoft.com/wiki/contents/articles/37872.sql-server-installation-on-centos-linux.aspx
Friday, May 3, 2019 6:34 AM
-
0
Sign in to vote
SQL Server 2000 is out-of-Support since a very Long time; no currently OS Version supports it.
MSDE 2000 was the free Version of SQL Server 2000; now the free Version is called Express Edition; you can use that one.
https://www.microsoft.com/en-us/sql-server/sql-server-editions-express
Olaf Helper
[ Blog] [ Xing] [ MVP]
-
Proposed as answer by
Puzzle_Chen
Monday, May 6, 2019 2:36 AM
Friday, May 3, 2019 7:54 AM
-
Proposed as answer by
I have to admit it, that when I first heard about this I was HIGHLY skeptical, but sure enough it actually works.
Enterprise Manager looking at the infamous PUBS database
Although I have gotten SQL Server 4.21a & 6.5 running on Windows 10 (The core from 6.0 works, but it’s pre-release COM objects for the Enterprise manager don’t like Windows 10) There were two stumbling blocks I never could get around. The first one turned out to be something trivial, which is SQL 4.21 would never listen on TCPIP.
Fixing SQL 4.21
It turns out that this actually was a simple fix.
17/09/21 19:40:24.00 server server name is ‘JADERABBIT’
17/09/21 19:40:24.00 server Recovering database ‘model’
17/09/21 19:40:24.00 server Recovery dbid 3 ckpt (45,26)
17/09/21 19:40:24.00 server Clearing temp db
17/09/21 19:40:24.03 kernel Using ‘SQLEVENT.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 kernel Using ‘OPENDSNT.DLL’ version ‘4.21.09.02’.
17/09/21 19:40:24.83 kernel Using ‘NTWDBLIB.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 ods Using ‘SSNMPNTW.DLL’ version ‘4.21.0.0’ to listen on ‘\.pipesqlquery’.
17/09/21 19:40:24.83 ods Using ‘SSMSSOCN.DLL’ version ‘4.21.0.0’ to listen on ‘1433’.
17/09/21 19:40:26.04 server Recovering database ‘pubs’
17/09/21 19:40:26.06 server Recovery dbid 4 ckpt (469,25)
17/09/21 19:40:26.06 server Recovering database ‘ultimate’
17/09/21 19:40:26.06 server Recovery dbid 5 ckpt (524295,12)
17/09/21 19:40:26.06 server Recovery complete.
17/09/21 19:40:26.12 server SQL Server’s default sort order is:
17/09/21 19:40:26.12 server ‘bin_cp850’ (ID = 40)
17/09/21 19:40:26.12 server on top of default character set:
17/09/21 19:40:26.12 server ‘cp850’ (ID = 2)
The DLL for TCP/IP is SSMSSOCN.DLL, and it turns out it really wants to be located in the C:WindowsSysWOW64 directory (aka the system path for libraries). Well that’s all great now, isn’t it?
Not really.
ODBC Hell
The ODBC drivers in Windows 10 finally made a magical cut off point that they will not talk to any old and ‘vulnerable’ SQL Servers. This means that the oldest version you can connect to is SQL Server 2000. Even SQL 7 didn’t make the cut. Trying to connect to a SQL 7 server, you just get:
Attempting connection
[Microsoft][ODBC SQL Server Driver]Cannot generate SSPI context
And then I saw this post, about using FreeTDS to connect to MSSQL. So I followed their instructions, and got nowhere fast just lots of crashing. Turns out the bloodshed environment’s included G++ just fails 100% of the time for me, with a nice crash. So I pointed it to the TDM GCC install, and then had to link the DLL manually and… nothing. No configuration point. In a fit of rage, I took the exist msvc project, opened it in Visual Studio 2015, and built it, except for one issue…
odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol __vsnwprintf_s referenced in function _StringCchPrintfW
Seriously, it turns out that 2015 can’t just link to ODBC, that the libc thing that gave me SDL grief is deeply entrenched all over the place. So in this case you need to link against legacy_stdio_definitions.lib. Fantastic.
I get my DLL, and yes, it’s a Windows 32bit ODBC driver!
FreeTDS Access failure
And yeah, lots of failure.
A red-herring was seeing this in the trace:
net.c:741:Sending packet
0000 01 01 00 2b 00 00 00 00-53 45 4c 45 43 54 20 43 |…+…. SELECT C|
0010 6f 6e 66 69 67 2c 20 6e-56 61 6c 75 65 20 46 52 |onfig, n Value FR|
0020 4f 4d 20 4d 53 79 73 43-6f 6e 66 |OM MSysC onf|
So I was thinking that SQL 4.21 & 6.5 are just too old to have this weird table, and as mentioned over here people would just create it, to get Access to shut up, and get on with their lives.
So, I put in some SQL
CREATE TABLE MSysConf(CREATE TABLE MSysConf(Config int NOT NULL,chValue char(255) NULL,nValue int NULL,Comments char(255) NULL)
GO
INSERT INTO MSysConf(Config,nValue,Comments)VALUES(101,1,’Prevent storage of the logon ID and password in linked tables.’)
GO
And yes, it creates the table, Access get’s it’s result then obviously doesn’t like it and up and dies. Maybe I can burn more cycles on it later, or break down and ask.
***UPDATE As a follow up, check out Loading the MS SQL 6.5 drivers on Windows 10, for enabling ODBC access on newer versions of Windows.
SQL Server 2000 (Dev) on Windows 10
And then I saw this epic thread, Windows 10 & My SQL Server 2000 Personal.
I managed to install following these steps:
Extract SP4
Copy ..SP4x86othersqlredis.exe to ..originalinstallpathx86other
(this avoid mdac insall freezing)
Create this folder structure (any place):
Microsoft SQL Server80ToolsBinn
Microsoft SQL ServerMSSQLBinn
Find out sqlunirl.dll on SP4 path and copy to Binn folder above
Copy dll files on ..SP4x86setup to Microsoft SQL ServerMSSQLBinn (folder above)
Copy folder structure (created on step 3) to C:Program Files (x86)
Give full access to user logged to **Microsoft SQL Server** folder
Change install compatiblity ..originalinstallpathx86setupsetupsql.exe
XP SP2
Run as administrator
**UPDATE
Newer versions of Windows 10 don’t include the old Visual C++ runtime, and the install will fail. Just copy the DLL’s into the syswow64 directory.
copy SP4x86systemmsvc?71.dll WindowsSysWOW64
This is tested on 17134.112 Version 1803 of Windows 10.
Could that really be it? For some reason I had a file held in the ComputerHKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerPendingFileRenameOperations registry key, preventing me from installing, but zapping the key & stub program, and I was able to follow the steps (I’m still not sure if you copy the dlls into the MSSQLBinn or ToolsBInn directories, so I copied them to both!) and yes, it worked. I even could run the SP4 update.
And now I can use Access 2016 with this fine ancient database.
Access 2016 with SQL 2000 via ODBC
And here we are. As always there is no larger over reaching point to this. I did have to create a linked SQL login for myself to get ODBC to login properly but it’s somewhat simple, and honestly if that sounds bizarre to you, why are you even thinking about something like this?
For me, I’m interested in the DTS of all things. Sure the new ones are fancier, and all that jazz, but I paid good money back in the day for old MS dev tools, and being able to use them without any virtualization, aka running on bare iron is all the more appealing.
Мне нужно установить MSDE 2000 Release A в Windows 10.
Окно установки всплывает и сразу закрывается без сообщения об ошибке.
Этот ответ на этот вопрос SO, похоже, решил очень похожую проблему и указывает, что это Фактически можно установить и запустить MS SQL Server 2000 в Windows 10. Я знаю, что этот вопрос касается SQL Server 2000, а не MSDE, но я надеюсь, что, если он работает для SQL Server 2000, он также будет применяться к варианту Desktop Engine.
Есть идеи о том, что может убить установщика и / или как я могу попытаться понять это?
-
Я уже пробовал установить режим совместимости установщика WinXP SP2 и запустить его с правами администратора.
-
Я еще не пробовал сначала установить Win 7, затем MSDE, а затем перейти на Win 10 и очень предпочел бы напрямую установить на Win 10.
3 ответа
Лучший ответ
Я нашел обходной путь …
Я обнаружил, что во время установки он извлекал несколько dll во временную папку, и журнал MSI жаловался на загрузку одной из них. Проблем с загрузкой зависимостей ни у одного из них не обнаружено, поэтому я попытался скопировать их все в C: Windows SysWow64, но одному из них (sqlunirl.dll) было отказано в доступе, так как он является частью ОС. Если я изменю владельца и разрешения этой DLL, я могу заменить ее извлеченной, установить MSDE, а затем заменить ее исходной библиотекой Win10. Однако приложение SQL Service Manager затем отказывается запускаться, но поскольку бывшие всегда сначала ищут библиотеки DLL в своей папке, поместите ту же самую dll в C: Program Files (x86) Microsoft SQL Server 80 Tools Binn. На всякий случай я также скопировал его в другие папки, в которых тоже есть исполняемые файлы. Я еще не тестировал это, но создал быстрый пакетный файл для установки (поместите его рядом с Setup.exe вместе с sqlunirl.dll, взятым из временной папки из предыдущей попытки установки):
takeown /f C:WindowsSysWOW64sqlunirl.dll /a
icacls C:WindowsSysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST C:WindowsSysWOW64sqlunirl.bak move C:WindowsSysWOW64sqlunirl.dll C:WindowsSysWOW64sqlunirl.bak
copy /y "%~dp0sqlunirl.dll" C:WindowsSysWOW64
"%~dp0Setup.exe" (plus your extra parameters such as SAPWD=PASSWORD)
move /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL Server80ToolsBinn"
copy /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL Server80COM"
copy /y C:WindowsSysWOW64sqlunirl.dll "C:Program Files (x86)Microsoft SQL ServerMssql$InstanceNameBinnMSSQL$InstanceNameBinn"
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls C:WindowsSysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls C:WindowsSysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls C:WindowsSysWOW64sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
(NB: SID используются для группы администраторов и TrustedInstaller, поэтому он работает на любом языке. Общие права на чтение и универсальное выполнение являются стандартными для группы администраторов, но я также применяю запись владельца, чтобы я мог вернуть его в TrustedInstaller как Я не мог найти способ использовать TakeOwn.exe, чтобы вернуть его обратно!)
4
Dan Gough
29 Янв 2018 в 09:44
Это своего рода обратный ответ на вопрос, надеюсь, все в порядке! Я не мог найти, чтобы кто-нибудь еще упомянул об этом, так что, надеюсь, все в порядке. Просто хотел сказать, что решение Дэна также работает для удаления MSDE 2000 из Windows 10.
У меня был компьютер Win7, на котором был установлен MSDE 2000, который я обновил до Windows 10. Все работало нормально, пока мне не понадобилось обновить программное обеспечение, которое включало удаление MSDE 2000. Он просто не удалялся — msi запускался, а затем просто выходил.
Все, что мне нужно было сделать, это переименовать sqlunirl.dll, запустить удаление из программы добавления / удаления, затем переименовать его и вернуть обратно разрешения:
takeown /f %SystemRoot%SysWOW64sqlunirl.dll /a
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
IF NOT EXIST %SystemRoot%SysWOW64sqlunirl.bak move %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%SysWOW64sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls %SystemRoot%SysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%SysWOW64sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Надеюсь, что это помогает кому-то!
2
Eugene Kang
21 Июл 2019 в 11:52
Это сработало для меня, когда я делал то, что написано @Eugene Kang, но со следующей настройкой я добавляю dll sqlunirl.dll в Windows system32 перед установкой.
Я использовал sql server 2000 sp4.
Итак, я добавляю одну строку в ваш скрипт:
takeown /f %SystemRoot%SysWOW64sqlunirl.dll /a
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:f
copy %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%system32sqlunirl.dll
IF NOT EXIST %SystemRoot%SysWOW64sqlunirl.bak move %SystemRoot%SysWOW64sqlunirl.dll %SystemRoot%SysWOW64sqlunirl.bak
< RUN UNINSTALLER HERE >
move /y C:WindowsSysWOW64sqlunirl.bak C:WindowsSysWOW64sqlunirl.dll
icacls %SystemRoot%SysWOW64sqlunirl.dll /remove *S-1-5-32-544
icacls %SystemRoot%SysWOW64sqlunirl.dll /grant *S-1-5-32-544:(GR,GE,WO)
icacls %SystemRoot%SysWOW64sqlunirl.dll /setowner *S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Заранее спасибо,
0
Tabutnas
28 Авг 2020 в 08:25