2015-02-05 239 views
2

试图为我的MSI制作patch.msp并尝试安装此修补程序。但它要求管理员权限。 1)在我的实际MSI安装过程中,它不要求管理员权限。 2)但在补丁安装/更新期间,它要求管理员权限。MSI WIX:补丁安装是否需要管理员权限?

我们可以在没有管理员权限的情况下安装/更新补丁吗?

下面是我Patch.wxs

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'> 

<Patch 
    AllowRemoval="yes" 
    Classification="Update" 
    Comments="Patch for FooTesting Software V 1.0.0" 
    Description="Update for Foo Testing Software V 1.0.0" 
    DisplayName="Foo Testing Patch" 
    Manufacturer="Foo Inc." 
    TargetProductName="Foo testig"> 

    <Media Id="1000" Cabinet="FooTesting.cab"> 
     <PatchBaseline Id="FooTesting" /> 
    </Media> 

    <PatchFamily 
     Id="MyPatchFamily" 
     Version="1.0.1" 
     ProductCode="44139BED-5F1A-4C1E-BE12-C7148BE11189" 
     Supersede="yes"/> 

</Patch> 

回答

0

有一些方法可以做到这一点,在这里:

https://msdn.microsoft.com/en-us/library/aa372388(v=vs.85).aspx

,但如果产品出货量已和你没没有签名,那就太迟了,答案是否定的。您的原始MSI安装在安装时没有提升?这很好奇,但没有详细信息,很难评论为什么会发生这种情况,以及您的补丁为什么会发生。

0

正如PhilDW指出的,这可以通过用户帐户控制修补(UAC补丁,以前称为“LUA补丁”)完成。

尽管MS官方不支持在服务器操作系统上进行安装,但它只需稍作调整即可(注册表项)。不清洁,但有时你需要那些东西。

另外一个想法: 这是永远不会太晚提供一个特殊的非常小的补丁,它(尽管需要为它自己的管理权限)可以使其他(未来的)这是正确签名的修补程序,安装没有管理员权限,即使您的产品设置已经发货。 (这个特殊的补丁可以通过域管理员/工具提供,然后让它使用方便。) 做到了。工作很好。

这根本不是不干净的。相反:同特殊的补丁是必须的,如果您交付的软件的寿命是几年或几十年:换句话说,如果你的公司的证书即将过期,什么情况通常每1-3年。

因为: 证书过期的作品仍然对老年人提供的补丁,但会从建立与该证书签名的新补丁阻止你。所以你需要一个新的证书,对于你旧的交付产品来说是未知的,这就是为什么你也需要一个特殊的“支持证书”的补丁。做到这一点..

但证书的真实世界的安全增益高估知道所有什么是在2015年知道。但它的几件事情我们有能力之一,所以..

有微软称为“高架修补”的第二种官方方法。它的使用很少,通过阅读官方文档,它仅限于每个用户的应用程序。基本上可以这样说:一个位于这个特殊驱动器和路径上的补丁必须根据定义“安全”。不像证书那么安全,但是......你已阅读我的评论。或 所有提及的方法可以只建议MSI专家,如果你有一个身边的顾问:

https://msdn.microsoft.com/en-us/library/aa370582%28v=vs.85%29.aspx

我不会评论这个多,因为。

三:
常用方式企业走出去,如果他们没有MSI的专业知识或有需要还安装完全的MSI没有提升的权限,或只是要花多少钱是由全写的安装/升级服务或处理那些事他们的管理员和他们的脚本。

安全说明再次 - 关于此第三种方法: 当然,从用户的角度来看,每一个始终运行并且必须提升权限的更新服务会降低安全性。但是,当我查看哪些更新时,如果自动更新,我不得不每周为每台连接到互联网的计算机安装(从微软的更新,防病毒软件开始,它被称为最好的黑客门,并由公司以“A”开始),“较小”公司的小型更新服务实际上对安全性没有太大影响。

相关问题