某些计算机的WIX安装无法将证书安装到根证书颁发机构

时间:2014-11-14 14:37:53

标签: windows wix

我们已经创建了一个WIX安装MSI,用于将证书安装到机器商店。它将根证书(GoDaddy Class 2证书颁发机构)安装到受信任的根证书颁发机构。它适用于大多数机器,但它失败了一些机器。我们怀疑集团的政策限制( http://technet.microsoft.com/en-us/library/cc754841.aspx),但改变并未解决问题。下面是WIX定义和日志文件的一部分,用于显示错误发生的位置。

<DirectoryRef Id="ApplicationDirectory">

  <Component Id="G.Root.Cert" Guid="{C6672075-1BFB-4158-86B4-8DD6D26BBC12}">
    <CreateFolder />


    <iis:Certificate Id="GoDaddy.Class2.Certificate"
             Name="GoDaddy Class 2 Certificate"
             Request="no"
             StoreLocation="localMachine"
             StoreName="root"
             Overwrite="no"
             BinaryKey="GoDaddy.Class2.Binary"
                     />

  </Component>

MSI(B4:08)[11:58:21:952]:执行op:CustomActionSchedule(Action = RollbackAddMachineCertificate,ActionType = 11521,Source = BinaryData,Target = ********* *,CustomActionData = **********) MSI(s4)[B4:08] [11:58:21:953]:执行操作:ActionStart(Name = AddMachineCertificate ,,) 行动11:58:21:AddMachineCertificate。 MSI(s4)(B4:08)[11:58:21:953]:执行op:CustomActionSchedule(Action = AddMachineCertificate,ActionType = 11265,Source = BinaryData,Target = **********,CustomActionData = **********) MSI(s4)(B4:40)[11:58:21:980]:调用远程自定义操作。 DLL:C:\ WINDOWS \ Installer \ MSI3EE3.tmp,入口点:AddMachineCertificate MSI(s4)(B4:D0)[11:58:21:981]:生成随机cookie。 MSI(s4)(B4:D0)[11:58:21:982]:使用PID 9920(0x26C0)创建自定义操作服务器。 MSI(s4)(B4:90)[11:58:22:042]:作为服务运行。 MSI(s)(B4:90)[11:58:22:043]:您好,我是您的32位Elevated自定义操作服务器。 AddMachineCertificate:删除以友好名称开头的证书:GoDaddy Class 2 Certificate_wixCert_ AddMachineCertificate:添加证书:GoDaddy Class 2 Certificate_wixCert_1 AddMachineCertificate:错误0x80070005:无法将证书添加到商店。 MSI(s)(B4!0C)[11:58:22:173]:注意:1:2205 2:3:错误 MSI(s)(B4!0C)[11:58:22:173]:注意:1:2228 2:3:错误4:SELECT Message FROM Error WHERE Error = 26352 安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是26352.参数是:-2147024891 ,, MSI(s)(B4!0C)[11:58:27:816]:注意:1:2205 2:3:错误 MSI(s)(B4!0C)[11:58:27:816]:注意:1:2228 2:3:错误4:SELECT Message FROM Error WHERE Error = 1709 MSI(s)(B4!0C)[11:58:27:816]:产品:Netsmart VR BA先决条件 - 安装程序在安装此软件包时遇到意外错误。这可能表明此包装存在问题。错误代码为26352.参数为:-2147024891 ,,

AddMachineCertificate:错误0x80070005:无法安装证书。 AddMachineCertificate:错误0x80070005:无法安装每台计算机证书。 CustomAction AddMachineCertificate返回实际的错误代码1603(请注意,如果在沙箱中发生翻译,这可能不是100%准确) 行动结束11:58:27:InstallFinalize。返回值3。 MSI(B4:08)[11:58:27:961]:用户政策价值&#39; DisableRollback&#39;是0 MSI(s4)(B4:08)[11:58:27:962]:机器政策价值&#39; DisableRollback&#39;是0 MSI(s4)[B4:08] [11:58:27:972]:执行操作:标题(签名= 1397708873,版本= 500,时间戳= 1163681610,LangId = 1033,平台= 0,ScriptType = 2,ScriptMajorVersion = 21,ScriptMinorVersion = 4,ScriptAttributes = 1)

我们对导致这个问题的原因感到困惑。如果您对导致此问题的原因有所了解,我们将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题,有时这是因为用户已将密钥存放在个人存储中。 WiX似乎不够智能,无法覆盖“更高”级别的其他商店的密钥(或根本不会覆盖 - 不确定是否是错误)。

我会检查是否已在用户级别安装该证书。

答案 1 :(得分:1)

在安装使用WiX安装程序的Basler Pylon 5.x软件时遇到了类似的问题。在Joe's answer的帮助下,我确认发生故障的计算机已安装了证书Microsoft Root Certificate Authority 2011,但没有友好的名称。

因此,我使用此powershell命令设置了正确的友好名称(MicrosoftRootCertificateAuthority2011.crt_wixCert_1),安装成功:

 (Get-ChildItem -Path Cert:\LocalMachine\Root\8f43288ad272f3103b6fb1428485ea3014c0bcfe).FriendlyName = 'MicrosoftRootCertificateAuthority2011.crt_wixCert_1'