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

使用Wix Installer部署内部Windows Service的无交互安装问题

解决Wix Installer后台部署Windows Service的“未知发布者”问题

一、生成自签名代码签名证书

用PowerShell创建符合代码签名要求的自签名证书:

  • 打开管理员PowerShell,执行以下命令生成证书并存储到本地计算机的个人证书库:
    New-SelfSignedCertificate -Subject "CN=你的公司内部证书名称" -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsage DigitalSignature -Type CodeSigningCert
    
  • 导出证书为PFX格式(签名安装包需要):
    1. 运行certlm.msc打开本地计算机证书管理器
    2. 找到「个人」>「证书」里刚生成的证书,右键>「所有任务」>「导出」
    3. 选择导出私钥,设置密码,保存为CodeSignCert.pfx文件

二、用证书签名Wix生成的MSI安装包

使用Windows SDK自带的signtool.exe签名安装包:

  • 找到signtool路径(通常在C:\Program Files (x86)\Windows Kits\10\bin\<版本号>\x64下),执行命令:
    signtool sign /f "CodeSignCert.pfx" /p "你的PFX密码" /t http://timestamp.digicert.com "你的Wix安装包.msi"
    
    注:/t参数指定时间戳服务器,避免证书过期后安装包失效

三、将自签名证书部署到所有目标电脑的信任根

公司内部批量部署可以用组策略,单台测试用PowerShell:

组策略批量部署

  1. 在域控制器上打开「组策略管理」,创建新的组策略对象(GPO)
  2. 编辑GPO,定位到「计算机配置」>「策略」>「Windows设置」>「安全设置」>「公钥策略」>「受信任的根证书颁发机构」
  3. 右键>「导入」,选择之前生成的证书(可导出不带私钥的CER格式),完成导入后,链接GPO到目标计算机所在的组织单元(OU)

单台电脑手动部署

打开管理员PowerShell执行:

Import-Certificate -FilePath "CodeSignCert.cer" -CertStoreLocation "Cert:\LocalMachine\Root"

四、后台无交互运行安装包

用msiexec命令实现静默安装:

msiexec /i "你的Wix安装包.msi" /qn /norestart
  • /qn:完全无交互模式
  • /norestart:安装完成不自动重启(可根据需求调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:55:22