Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同的上下文下以普通用户身份从MSI(wix)执行进程_Wix_Windows Installer_Wix3 - Fatal编程技术网

在不同的上下文下以普通用户身份从MSI(wix)执行进程

在不同的上下文下以普通用户身份从MSI(wix)执行进程,wix,windows-installer,wix3,Wix,Windows Installer,Wix3,我正在尝试为我们在公司内使用的某些软件配置安装程序 安装程序通过SMS推送到目标机器,并执行以下步骤: 终止当前运行的任何应用程序实例(该应用程序是一个实用程序,因此不会对用户造成影响) 删除以前的版本 安装更新版本 我们希望它做的是在第3步完成后启动已安装的可执行文件(作为当前登录的用户,而不是作为SMS作业运行的系统帐户) 我已尝试添加自定义操作,如下所示: <CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWai

我正在尝试为我们在公司内使用的某些软件配置安装程序

安装程序通过SMS推送到目标机器,并执行以下步骤:

  • 终止当前运行的任何应用程序实例(该应用程序是一个实用程序,因此不会对用户造成影响)
  • 删除以前的版本
  • 安装更新版本
  • 我们希望它做的是在第3步完成后启动已安装的可执行文件(作为当前登录的用户,而不是作为SMS作业运行的系统帐户)

    我已尝试添加自定义操作,如下所示:

    <CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWait" FileKey="AppExeFile" Execute="commit" ExeCommand="acm" />
    
    但是,当我们尝试此操作时,无论是作为SMS作业还是作为管理员执行,都不会发生任何事情(例如,应用程序不会重新启动)


    有什么建议吗?

    我提出的解决方案是在登录时使用Run注册表项启动实用程序,如果当前用户是“SYSTEM”,则在安装过程中防止启动该实用程序-这不是专门针对SMS的,而是使用AD/GPO部署的。然而,我们的一些客户正在使用短信,而这正是适合他们的解决方案

    Vista/Server 2008 UAC也存在类似的问题,我提出的唯一可靠的解决方案是安排重新启动,这样当用户重新登录时,该应用工具就会在正确的用户上下文下启动


    我已经做了相当多的研究,并浏览了MSI文档,似乎不可能取消作为另一个用户启动后台实用程序的权限

    不幸的是,这似乎是不可能的——我想这可能是为MSI编写扩展的一种选择,它可以在代码中实现我所需要的功能——尽管这似乎是为了一点回报而做的大量工作

    我们决定使用SMS发送一个链接包——执行应用程序的主要包,这首先取决于正在运行的安装程序


    希望这对其他人有所帮助:)

    hmm我不太喜欢“需要重新启动”标志-这似乎是一个看似简单问题的糟糕解决方案。。。该实用程序目前确实使用Run键,但仍然需要重新启动。。谢谢。SMS/SCCM中没有允许您启动应用程序的功能吗?
    <Custom Action="Relaunch" OnExit="success" />