我已經找到了解決辦法...
我發現它是提取幾個d在安裝期間lls到臨時文件夾,MSI日誌抱怨加載其中一個。沒有任何依賴加載問題,因此我嘗試將它們全部複製到C:\ Windows \ SysWow64,但其中一個(sqlunirl.dll)訪問被拒絕,因爲它是操作系統的一部分。如果我更改了該dll的所有者和權限,則可以將其替換爲解壓縮的那個,安裝MSDE,然後將其替換爲原始的Win10。然而,SQL服務管理器應用程序然後拒絕啓動,但由於exes總是先在他們自己的文件夾中查找dll,請將相同的dll放在C:\ Program Files文件(x86)\ Microsoft SQL Server \ 80 \ Tools \ Binn中。以防萬一,我也將它複製到其他可執行文件夾中。我沒有測試了這一點,不過也敲了一個快速批處理文件來安裝(把它旁邊的Setup.exe隨着從的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設置它的方法!)
您是否考慮過具有支持該版本的操作系統的虛擬機? –
是的,生產系統當前運行在WinXP SP2 Hyper-V虛擬機上。 – Zalumon