我在这里遇到了一个我正在使用的MSI部署的问题(使用InstallShield).我们有一个在后台运行的程序需要按用户运行,它需要在没有用户干预的情况下自动启动.
问题在于组策略对象/Active Directory(GPO/AD)部署,应用程序在任何人登录之前在SYSTEM上下文中启动,而不是作为即将登录的用户.应用程序每个用户只能运行一次,似乎SYSTEM进程阻止了USER进程启动.这意味着在将软件部署到用户之前,需要重新启动PC两次.我们该如何制止这个?
基本上当前的工作流程是:
安装/升级运行...杀死后台应用程序
安装新文件
启动后台应用程序
这适用于已发布的应用程序和交互式MSI安装 - 它只是"已分配"的应用程序似乎有问题.由于步骤3发生在SYSTEM上下文而不是用户上下文中:(
理想情况下,我让开发团队修补EXE文件以防止在SYSTEM上下文中启动,但这是一个发布周期,我正在寻找一个基于安装程序的临时解决方案.
(我不知道Installscript ......所以我猜测如果没有我可以使用的原生InstallShield东西,可能就是VBScript.)
您可以使用Windows Installer 的LogonUser属性作为启动EXE的操作的条件.