如何检测SCCM 2012是否安装?

问题描述:

我正在编写Wix C++自定义操作来检测SCCM 2012是否已安装。我正在通过从注册表中读取产品GUID来执行此操作:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\如何检测SCCM 2012是否安装?

但是,在安装了SCCM 2012的系统上没有这样的功能,因此在注册表中没有这样的信息。

任何人都可以请指出我在正确的方向来实现这一目标吗?

我想仅在SCCM 2012安装时安装我的软件。

您应该利用Condition这个元素。如果将它放置在产品或片段下,它将作为启动条件工作。了解更多关于发射条件here

这个条件,你将作者将检查一个属性。如果您正在查找的软件已安装,并且没有另行设置(这是最简单的情况),则应该设置该属性。为了实现此目的,请编写RegistrySearch元素,以便在找到正确的注册表路径的情况下定义属性。 RegistrySearch元素应该是Property元素的子元素。

正如你所看到的 - 这里没有自定义操作,那太棒了! :)

+0

非常感谢。这是非常有帮助 – Mark

您不应该依赖无证内部来检测软件 - 它们可以在没有警告的情况下更改。 (例如,在升级过程中的产品代码GUID的变化所以除非SCCM团队已经表示,他们不会改变它,它可能改变SCCM 2012 RTM,甚至2012的更新。)

相反,看看球队有记录了一种检测它的方法。大多数团队记录一个注册表值,以检测安装了哪个版本等。如果他们不这样做,你可能会更愿意看注册表,因为价值观不太可能消失。

+0

非常感谢:) – Mark