静默卸载 Lenovo ThinkVantage System Update

sla*_*oco 4 silent uninstall sccm

需要通过 SCCM 2012 推出最新的 Lenovo ThinkVantage System Update (v5.06.0034)。我希望此更新取代所有较低版本,为此我需要静默卸载那些以前的版本。

通常,可以通过使用带有 /quiet 或 /qn 参数的 TVSU 的 UninstallString 来做到这一点:

MsiExec.exe /X{25C64847-B900-48AD-A164-1B4F9B774650} /qn
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这是有效的。但是,Lenovo 安装程序会在卸载后询问用户是否要删除程序文件夹,这需要用户输入(是或否)。因此,当卸载以静默方式启动时,安装程​​序将无限期挂起,因为用户无法与安装程序交互。

有没有办法为此安装程序提供 unattend.xml 或者有人知道我可以与联想的 System Update 安装程序 .exe 一起使用的特定命令开关吗?

编辑

正如@kce 建议的那样(谢谢!),我在卸载过程中打开了 msiexec 的日志记录级别。虽然我找不到任何可能通过 msiexec 手动传递的属性,但这是安装程序创建“删除文件夹?”对话框的部分,以及用户按下是时调用的函数。也许它可以帮助任何人:

MSI (s) (80!84) [10:52:44:046]: Creating MSIHANDLE (77) of type 790531 for thread 3716
InstallShield 10:52:44: Registering Msi Server...
MSI (s) (80!84) [10:52:44:046]: Closing MSIHANDLE (77) of type 790531 for thread 3716
MSI (s) (80!84) [11:03:27:239]: Creating MSIHANDLE (78) of type 790531 for thread 3716
InstallShield 10:52:44: Invoking script function DeleteInstallDir
Run Code Online (Sandbox Code Playgroud)

我没有进一步解决这个问题,因为我看到安装程序 v5.06.0034(最新版本)确实检查是否安装了旧版本并正确卸载旧版本(文件夹结构和注册表值已清理)。

小智 7

啊。在 Windows 环境中自动安装软件的乐趣。正如您所发现的那样,SCCM 只能使用糟糕的供应商提供的安装程序做很多事情。

在尝试构建应用程序或包程序时,我的第一站是查看ITNinja,在戴尔决定购买并重新命名之前,它曾经被称为 App Deploy。不幸的是,Lenovo ThinkVantage System Update 的内容不多。

如果您独自一人,您可以尝试以下几个常规步骤:

  • 尝试不同的安装程序方法。很多时候,供应商会将他们的应用程序打包为带有 .EXE 引导程序的 .MSI 安装程序。有时,如果您可以找到有关 .EXE 命令开关(如果有)的文档,它们会比直接运行 .MSI 和使用标准化的 .MSI 开关工作得更好。我不知道为什么...
  • 将日志记录调高至 11。传递 msiexec/lvx uninstallation.log开关,以便您获得调试和详细日志记录信息。完成安装程序并在执行此操作时使用 CM32Trace 监视日志。当您到达对话框询问“是”或“否”按钮的步骤时,按下所需的按钮,看看是否可以在日志文件中找到一个属性,当您通过 SCCM 运行卸载程序时,该属性可以传递回 msiexec.exe。如果您将此SysInternalProcMon 配对,您可以了解有关安装程序如何以及做什么的大量信息,有时这些信息足以找出症结所在。
  • 尝试社区支持。其他一些可怜的人可能也试图这样做,通常可以在供应商的社区支持论坛中找到那些漫无目的的求助。例如,Levono 论坛上的 TVSU 上有一个关于静默安装的冗长主题。显然有一个神奇的咒语,嗯,我的意思是/verysilent基于 .exe 的安装程序将接受的安装程序开关;然而,人们得到的结果似乎不一致。也许它也适用于卸载?此外,我的服务台工作人员告诉我/r/sccm非常有用。
  • 进行就地安装。如果您要升级某个软件,重要的是要测试它是进行就地安装还是并行安装。同样,这里的行为非常依赖于供应商、应用程序和版本。有时该软件会安装在现有旧安装的顶部,有时它会查找自身的所有旧版本并尝试首先卸载它们,有时它会在两个版本共存的情况下进行并行安装. 对于执行就地安装或卸载旧版本任务的软件,让安装程序做任何它想做的疯狂事情而不是使用 SCCM 应用程序取代模型通常效果更好。测试,测试和测试更多。
  • 重新打包供应商的安装程序。有时你必须建立一个更好的捕鼠器。有像Advanced Installer这样的工具可以帮助将软件重新打包到自定义 .MSI 安装程序中。对于供应商提供的安装程序执行愚蠢的操作来说,这也是一个体面但费力的解决方法。
  • 向您的供应商投诉。我从未见过这项工作,但它确实让我感觉好多了。
  • 放弃并使用 hack。有时,通往胜利的道路就是失败。正如Konrad Gajewski所指出的,有许多应用程序可以自动点击按钮,因为作为 SCCM 管理员的生活是荒谬且没有意义的