当部署项目的一部分时,可执行文件不请求提升

发布于 2024-12-04 18:17:32 字数 709 浏览 1 评论 0原文

我创建了一个可执行文件,由另一个应用程序调用,用于需要 UAC 提升权限的进程。如果我使用下面的清单构建此项目,它会很好地请求 UAC,如果我将此项目输出添加到我的安装项目中,它会在没有 UAC 的情况下创建它吗?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="CreateApp" type="win32"/>
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

知道为什么会这样,或者是否可以将其作为清单安装项目的一部分?

I've created an executable that's called by another app for processes that require UAC elevated privileges. If I build this project with the below manifest it requests UAC fine, if I add this projects output to my setup project it creates it without UAC?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="CreateApp" type="win32"/>
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Any idea why this is or if it's possible to have it as part of the setup project with the manifest?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖乖哒 2024-12-11 18:17:32

InstallExecuteSequence 中的自定义操作已作为 Windows Installer 服务的子进程运行。所以他们继承了他们的特权并且清单不被使用。

要以完全权限运行自定义操作,您应该将其安排为 推迟,没有模仿

如果您不使用 EXE 作为自定义操作,而只是从另一个进程启动它,请确保使用 ShellExecute

Custom actions in InstallExecuteSequence already run as child processes of Windows Installer service. So they inherit their privileges and the manifest is not used.

To run a custom action with full privileges you should schedule it as deferred with no impersonation.

If you are not using the EXE as a custom action and you are just launching it from another process, make sure you use ShellExecute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文