You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非英文环境下使用Wix实现SQL 2019 Express无人值守安装的适配问题

SQL 2019 Express 多语言环境无人值守安装配置方案

方案1:直接在安装命令中使用SID(最简单,无需额外打包逻辑)

你之前直接写SID不生效是因为SQL安装程序默认会把输入值当做账户名称解析,需要加*前缀标识输入内容为SID,安装程序会自动根据当前系统语言转换为对应的本地化账户名:

  • 内置管理员组SID:S-1-5-32-544,参数值写为 "*S-1-5-32-544"
  • NETWORK SERVICE账户SID:S-1-5-20,参数值写为 "*S-1-5-20"
    修改后的完整安装命令如下:
/ACTION=Install 
/INSTANCENAME=$(var.InstanceName) 
/FEATURES=SQL 
/SECURITYMODE=SQL [SqlVariable] 
/TCPENABLED=1 
/SQLSVCACCOUNT="*S-1-5-20"
/SQLSVCSTARTUPTYPE=Automatic 
/SQLSYSADMINACCOUNTS="*S-1-5-32-544"
/ADDCURRENTUSERASSQLADMIN=FALSE 
/Q 
/IAcceptSQLServerLicenseTerms

该方案支持SQL Server 2012及以上所有版本,适配任意语言系统

方案2:Wix打包阶段预解析SID获取本地账户名

如果需要兼容更低版本SQL,可在Wix打包逻辑中添加自定义动作,提前通过SID查询当前系统的对应账户名称,再代入安装命令:

  1. 引用Wix Util扩展,或添加PowerShell自定义动作执行以下命令获取账户名:
    • 查管理员组名称:(New-Object System.Security.Principal.SecurityIdentifier('S-1-5-32-544')).Translate([System.Security.Principal.NTAccount]).Value
    • 查NETWORK SERVICE名称:(New-Object System.Security.Principal.SecurityIdentifier('S-1-5-20')).Translate([System.Security.Principal.NTAccount]).Value
  2. 将查询结果存储为Wix变量,替换安装命令中对应的账户参数即可。

内容的提问来源于stack exchange,提问作者evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:36:03