我想在安装完成后执行两个文件,但我不希望它们显示UAC对话框。我试图使用最大的执行级别,但它不工作。在高级安装程序安装结束时执行多个exe文件
回答
我假设的可执行文件“安装执行”序列外推出。我猜你试图在用户点击安装完成对话框上的“完成”按钮时启动这些可执行文件。
使用UAC时,应用程序和任务始终在非管理员帐户的安全上下文中运行,除非管理员明确授权管理员级别访问系统。即使您以管理员身份登录,您运行的任何应用程序也不会以完全管理权限运行。每个需要管理员访问令牌的应用程序必须提示管理员同意。当管理员登录时,会为该用户创建两个单独的访问令牌:标准用户访问令牌和管理员访问令牌。标准用户访问令牌包含与管理员访问令牌相同的用户特定信息,但管理Windows权限和SID将被删除。标准用户访问令牌用于启动应用程序。标准用户访问令牌随后用于显示桌面(Explorer.exe)。 Explorer.exe是所有其他用户启动的进程继承其访问令牌的父进程。因此,所有应用程序都以标准用户身份运行,除非用户提供同意或凭据来批准应用程序以使用完整管理访问令牌。
在你的情况,我假设从非提升的命令提示符安装msi包。因此,msi软件包正在以标准用户权限运行。因此,在InstallExecute序列之外的此msi软件包中产生的任何子进程将以标准用户权限运行。
要使应用程序符合UAC,应用程序需要在应用程序清单中指定“请求的执行级别”。请求的执行级别指定应用程序所需的权限。
在您的可执行文件的应用程序清单中请求的执行级别是什么? 您可以使用Sysinternals套件中名为“sigcheck.exe”的工具来验证您的exectuable的嵌入式清单中指定的请求执行级别。
验证请求的执行级别。 我在考虑将它设置为“requireAdministrator”,因为它会被提示提升。将此更改为“asInvoker”,然后解决您的问题。
您可以在以下位置了解更多有关UAC:
https://technet.microsoft.com/en-us/library/jj574202.aspx
问候,
基兰赫格德
当你声明你已经使用“最大执行级别”时,你是什么意思? 您是否在可执行文件的清单中使用“highestAvailable”的级别值?
看看MSDN文章供参考:
https://msdn.microsoft.com/en-us/library/bb384691.aspx
如果推出可执行文件不需要任何特殊的权限进行操作,你应该坚持使用“asInvoker”的水平。这将阻止可执行文件显示UAC对话框。
问候, 基兰赫格德
我的意思是我运行MSI为管理员。 –
- 1. 如何使用wix安装程序运行多个安装的exe文件?
- 2. 使用高级安装程序和C#创建安装文件#
- 3. 安装后自动执行.exe文件
- 4. 如何使用高级安装程序进行安装后解压缩文件
- 5. 如何使用安装程序在简单的.exe文件中安装多个安装?
- 6. NSIS - 重建安装程序exe文件
- 7. 如何在高级安装程序中安装VC可再发行组件?
- 8. 在高级安装程序中安装Side-Loaded UWP
- 9. 在exe中附加安装文件并在执行时解压
- 10. 在本地安装.net安装程序可执行文件时出错
- 11. 使用一个安装程序安装多个软件(安装包装?)
- 12. 安装Sys文件的安装程序
- 13. Office应用程序:通过.exe安装文件安装应用程序
- 14. 高级安装程序启动操作
- 15. 如何在安装项目结束时运行可执行文件?
- 16. 安装程序安装一个或多个程序
- 17. 在“高级更新\安装”
- 18. 多个项目MSI安装程序没有运行后安装
- 19. VS 2010安装项目 - 升级时的安装程序不会更新.exe或.config文件
- 20. 高级安装程序生成的安装程序不会设置odbc连接
- 21. 执行exe文件后安装完成在VS 2010
- 22. 安装应执行两次以安装应用程序的主要升级
- 23. Perl:inc :: Module ::在Makefile.PL中安装并安装可执行文件
- 24. 高级安装程序 - 必备先决条件未正确安装
- 25. 在AIR安装程序中包含.exe
- 26. Inno Setup - 用于多个安装程序的安装程序
- 27. 使用C#安装一个exe文件
- 28. 安装一个exe文件-VBSCript
- 29. 使用MSI打包一个.EXE文件,以便MSI在msi安装过程中安装exe文件
- 30. 安装期间Inno Setup启动可执行文件(安装驱动程序)
你的问题解决了吗?你需要更多的帮助来解决你的问题 –