如何将具有两个命令行开关值的msi部署到不同的组

我有一个MSI部署types在sccm中创build的应用程序。 作为程序=>安装程序和卸载程序下的部署types属性的一部分,我可以指定包括开关在内的msi命令行语句来执行。 我需要有部署A去到组A,并没有额外的命令行开关。 我需要有部署B去B组,并且有一个额外的ADMINUSER = 1的命令行开关。 msi(我开发的内部程序)使用命令行开关来确定安装哪个文档文件(普通用户或pipe理员用户)。

我知道我可以创build两个完全独立的应用程序,但这样做效率不高,因为我经常更新我的应用程序。 如果我每次进行两次更新都是非常低效的。 我想做的是做两个不同的部署,使用两种不同的部署types,但从我所了解的不是sccm如何工作。 我已经在网上浏览,但sccm的结果和文档很烂。

我该如何解决我的问题?

不幸的是,你不能用一个程序来做到这一点。 但是,你可以用一个包(文件组,你的情况下的MSI)使用多个程序来做到这一点。 使用这种方法,您无需在更新软件包时更新程序。 该包只是一组文件(大多数情况下),这些程序是实际执行的命令。 在你的情况下,我会采用这种方法:

1)您可以创build两个单独的安装程序,并将它们通告给两个不同的集合。 请记住,这些不是单独的软件包,而是单个软件包中的程序。 唯一需要更改程序的时候(实际上是相当微不足道的)是安装程序包的命令发生了变化。 所以如果包A是script.msi我会为这个包创build两个程序,

程序1的命令是msiexec /i script.msi /qb ALLUSERS=1

程序2,其命令是msiexec /i script.msi

然后我会将这两个程序部署到各自的集合中。 如果软件包A必须更新到新版本的script.msi ,我只需确保名称保持不变,然后使用最新版本更新分发点。 你当然可以发出一个新的必需的部署,以确保客户有最新的版本,但不需要两个单独的包。