首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在高级安装程序安装结束时执行多个exe

在高级安装程序安装结束时执行多个exe
EN

Stack Overflow用户
提问于 2015-07-10 11:06:58
回答 1查看 590关注 0票数 2

我想在安装完成后执行两个文件,但我不希望它们显示UAC对话框。我试图使用最大的执行级别,但它不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 12:59:01

我假设可执行文件是在“安装执行”序列之外启动的。当用户单击安装完成对话框上的"Finish“按钮时,我猜您正在尝试启动这些可执行文件。

对于UAC,应用程序和任务总是在非管理员帐户的安全上下文中运行,除非管理员专门授权管理员级对系统的访问。也就是说,即使您是以管理员身份登录,您运行的任何应用程序都不会以完全的管理权限运行。每个需要管理员访问令牌的应用程序都必须提示管理员同意。当管理员登录时,将为用户创建两个单独的访问令牌:标准用户访问令牌和管理员访问令牌。

标准用户访问令牌包含与管理员访问令牌相同的特定于用户的信息,但管理Windows权限和SID被删除。标准用户访问令牌用于启动应用程序。然后使用标准用户访问令牌来显示桌面(Explorer.exe)。Explorer.exe是父进程,所有其他用户启动的进程都从它继承它们的访问令牌。因此,所有应用程序都以标准用户的身份运行,除非用户提供同意或凭据来批准应用程序使用完整的管理访问令牌。

在您的例子中,我假设msi包是从非提升的命令提示符中安装的。因此,msi包是以标准用户权限运行的。因此,在InstallExecute序列之外从这个msi包生成的任何子进程都将以标准的用户权限运行。

要使应用程序兼容UAC,应用程序需要在应用程序清单中指定“请求的执行级别”。请求的执行级别指定应用程序所需的特权。

您的可执行文件的应用程序清单中请求的执行级别是什么?,您可以通过使用名为"sigcheck.exe“的Sysinternals套件中的工具来验证可执行的嵌入式清单中指定的请求执行级别。

验证请求的执行级别。我认为它的设置为"requireAdministrator“,因为它提示您提升。将其更改为"asInvoker“,然后您的问题就会得到解决。

您可以在以下位置阅读有关UAC的更多信息:

https://technet.microsoft.com/en-us/library/jj574202.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31339232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档