在Windows 10(x64)上安装Microsoft SQL Server 2000桌面引擎(MSDE 2000)版本A

时间:2016-01-10 19:22:11

标签: sql-server-2000 windows-10 msde

我需要在Windows 10上安装MSDE 2000 Release A

弹出安装窗口,然后立即关闭而不显示错误消息。

answer to this SO question似乎解决了一个非常类似的问题,并表明 实际上可能install and run MS SQL Server 2000 on Windows 10。我知道这个问题是关于SQL Server 2000而不是MSDE,但我希望如果它适用于SQL Server 2000,它也将适用于Desktop Engine变体。

关于什么可以杀死安装程序和/或我如何试图解决这个问题的任何想法?

  • 我已经尝试将安装程序的兼容模式设置为WinXP SP2并使用admin priviledges运行

  • 我还没有尝试先安装Win 7,然后再安装MSDE,然后升级到Win 10,并且非常希望直接安装在Win 10上

3 个答案:

答案 0 :(得分:3)

我找到了解决方法......

我发现它在安装期间将几个dll提取到temp文件夹,并且MSI日志抱怨加载其中一个。没有任何依赖加载问题,所以我尝试将它们全部复制到C:\ Windows \ SysWow64,但其中一个(sqlunirl.dll)被拒绝访问,因为它是操作系统的一部分。如果我更改了该DLL的所有者和权限,我可以用提取的那个替换它,安装MSDE,然后用原来的Win10替换它。然而,SQL Service Manager应用程序然后拒绝启动,但由于exes总是首先在自己的文件夹中查找dll,所以将相同的dll放在C:\ Program Files(x86)\ Microsoft SQL Server \ 80 \ Tools \ Binn中。为了以防万一,我也将它复制到其他具有可执行文件的文件夹中。我还没有对此进行测试,但是已经安装了一个快速批处理文件(将它放在Setup.exe旁边以及从之前的安装尝试中从temp文件夹中获取的sqlunirl.dll):

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

(注意:SID用于管理员组和TrustedInstaller,因此它适用于任何语言。通用读取和通用执行权限是管理员组的默认权限,但我也应用写入所有者,以便我可以将其设置回来到TrustedInstaller,因为我找不到使用TakeOwn.exe来设置它的方法!)

答案 1 :(得分:0)

这是对问题的反向回答,希望可以!我找不到其他人提到它,所以希望它没事。只是想说Dan的解决方案还可以从Windows 10卸载MSDE2000。

我有一台装有MSDE 2000的Win7计算机,我将其升级到Windows10。一切正常,直到需要升级涉及卸载MSDE 2000的软件。它根本无法卸载-msi可以运行,然后就可以运行退出。

我要做的就是重命名sqlunirl.dll,从添加/删除程序中运行卸载程序,然后重命名并将权限改回来:

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

希望对某人有帮助!

答案 2 :(得分:0)

它已经按照我所说的@Eugene Kang进行了工作,但是通过以下设置,我在安装Windows \ system32之前添加了sqlunirl.dll dll。

我用过sql server 2000 sp4。

因此,我在脚本中添加了一行:

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

预先感谢