如何强制 C# windows 服务自动以管理员权限执行?

问题描述

我有一个用 C#/.NET 编写的控制台应用程序。我将此应用程序用作 Windows 服务。此 Windows 服务需要具有管理员权限才能执行其逻辑。

我所做的是向我的项目添加一个“app.manifest”文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

我还以如下两种不同的方式配置了“app.manifest”的属性,然后编译并发布了我的项目:

配置 1: 构建操作:无 复制到输出目录:始终复制

配置 2: 构建操作:嵌入式资源 复制到输出目录:始终复制

但是,当我将此应用程序安装为 Windows 服务并执行它时,由于缺乏管理员权限而失败。我仍然可以通过windows服务的'Properties->logon'面板引入管理员凭据,但我想避免这一步并强制该服务认以管理员权限执行。

你能帮忙吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)