如何通过自定义操作以普通用户权限启动进程
在Win7或vista中,如果管理员用户安装了wix创建的msi数据包,并且在这个msi数据包中,我们需要以普通用户权限启动一个进程,我该怎么做,谢谢。
in Win7 or vista, if a admin user install a msi packet created by wix, and in this msi packet, we need to start a process by normal user privilege, how can i do so, thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一旦进程被提升,就无法“取消提升”它或其子进程(有几种不同的技术声称可以做到这一点,但它们在某些配置中都失败了)。
您需要在引导程序配置中使用两个进程。
Once a process is elevated, there is no way to "de-elevate" it or it's child processes (There are a couple of different techniques that claim to do this, but they all fail in certain configurations).
You need to use two processes in a bootstrapper configuration.
Windows Installer 提升仅用于执行安装:单击向导中的“安装”按钮时会出现提升提示。然后,安装将使用系统凭据运行,而 UI 仍托管在未提升的 msiexec 进程中。
自定义操作以当前用户权限启动,无需提升。因此,您所需要做的就是从自定义操作启动流程。
Windows Installer elevates only to perform the installation: you get elevation prompt when click Install button in the wizard. The installation then runs with system credentials, whereas UI is still hosted in the non-elevated msiexec process.
Custom actions are started with the current user privileges, without elevation. So all you need to do is to launch your process from a custom action.