Sccm

如何將具有兩個命令行開關值的 msi 部署到不同的組

  • February 22, 2013

我在 sccm 中創建了一個具有 MSI 部署類型的應用程序。作為 Programs => Installation Program 和 Uninstall Program 下的部署類型屬性的一部分,我可以指定要執行的 msi 命令行語句,包括開關。我需要部署 A 去組 A 並且沒有額外的命令行開關。我需要部署 B 到組 B 並有一個額外的命令行開關 ADMINUSER=1。msi(我開發的一個內部程序)使用命令行開關來確定安裝哪個文件文件(普通使用者或管理員使用者)。

我知道我可以製作兩個完全獨立的應用程序,但這會效率低下,因為我經常更新我的應用程序。如果我每次進行更新時都必須創建兩個不同的應用程序,那將是非常低效的。我想做的是進行兩個不同的部署,它們使用兩種不同的部署類型,但據我了解,這不是 sccm 的工作方式。我首先在網上瀏覽過,但是 sccm 的結果和文件很糟糕。

我該如何解決我的問題?

不幸的是,你不能用一個程序來做到這一點。但是,您可以使用多個程序使用單個包(文件組,在您的情況下為 msi)來執行此操作。使用這種方法,您不必在更新包時更新程序。包只是一組文件(在大多數情況下),程序是實際執行的命令。在您的情況下,我會採用這種方法:

1)您可以創建兩個單獨的安裝程序,並將它們發佈到兩個不同的集合中。請記住,這些不是單獨的包,而是單個包中的程序。您需要更改程序的唯一一次(實際上這很簡單)是安裝軟體包的命令發生更改時。因此,如果包 A 是script.msi我將為該包創建兩個程序,

程序 1,其命令為msiexec /i script.msi /qb ALLUSERS=1

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

然後我會將這兩個程序部署到它們各自的集合中。如果包 A 必須更新為 的新版本script.msi,我會確保名稱保持不變,然後使用最新版本更新分發點。您當然可以發送新的必需部署以確保客戶端具有最新版本,但不需要兩個單獨的包。

引用自:https://serverfault.com/questions/478075