我们在一些客户端机器上安装了一个应用程序,我们想通过以下方式部署新版本
1)卸载如果有先前版本,则
2)安装新版本在同一步骤(因为应用程序的 msi 无法卸载以前的版本,我们必须在同一步骤中执行应用程序的卸载和安装。可能吗?如果可以,我们如何使用脚本等在 SCCM 或 msi 端进行管理?如能得到任何帮助,我们将不胜感激。
答案1
我的 SCCM 部署定期卸载一个版本,然后通过一个步骤安装后续版本。以下是如何实现的。
将两个版本打包为完整生命周期经过测试并可正常运行的应用程序。
为了实现这一点,您需要将原始版本和新版本都打包为 SCCM 应用程序,以便 SCCM 能够成功完成整个生命周期(从卸载和未检测到开始,安装、检测、卸载、未检测到)。在继续下一步之前,请分别测试每个应用程序的完整生命周期。
部署版本 n
使用格式正确的应用程序,您可以将应用程序部署到计算机,而不管应用程序是否已安装。如果应用程序已安装,CcmExec
它将检测到它并且不执行任何操作。如果未检测到应用程序,它将调用安装程序。
使用版本 n+1 取代版本 n
取代是实现“一步到位”地完成卸载和安装的关键。 CcmExec
实际上,卸载是先处理安装,但我总是看到这种情况连续发生,这样您就不会冒着用户长时间不使用应用程序的风险。
这是您正在努力实现的取代屏幕:
答案2
创建一个新的包
源文件夹:\\server\here\there
标准程序
命令行:installThis.bat
等等...
源文件夹还应包含“installThis.bat”
InstallThis.bat 的最小内容
REM *** Get the "UninstallString" of the old version from this registry locaton
REM *** HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
REM *** Replace the first MSIEXEC here with that UninstallString
MsiExec.exe /X{071c9b48-7c32-4621-a0ac-3f809523288f}
MsiExec.exe newVersion.msi /this /that /other