如何以管理员权限启动 Windows 服务

Posted

技术标签:

【中文标题】如何以管理员权限启动 Windows 服务【英文标题】:How to Start Windows Service As Administrator Privileges 【发布时间】:2015-06-13 11:40:22 【问题描述】:

我有自己的应用程序服务器,它是与 sql server 通信的 windows 服务,在某些情况下 sql server 服务已停止,所以我通过此代码说明

ServiceController sc = new ServiceController("MSSQL$SQLEXPRESS");
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);

但它需要管理员权限才能启动服务我如何以管理员身份启动我的窗口服务

【问题讨论】:

您是否尝试过以管理员身份运行启动服务的应用程序? 但两个应用程序都是 Windows 服务。如何以管理员身份运行我的 Windows 服务。 我只是在我的 app.manifest 文件中添加了这个标签 它可以工作... 然后把它写成答案,这样这个问题就不会被视为没有答案。 【参考方案1】:

让我们将所有内容分成步骤

    将文件“应用程序清单文件”添加到您的根目录 选择项目属性 在应用程序选项卡资源组中找到清单字段 粘贴新的清单文件名。可能是“app.manifest” 用此信息填写文件

根据您的具体情况,所有信息可能会有所不同。 More info

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <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>
      <applicationRequestMinimum>
        <defaultAssemblyRequest permissionSetReference="Custom" />
        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
</asmv1:assembly>

【讨论】:

【参考方案2】:

我只是在我的 app.manifest 文件中添加了这个标签 &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&gt; 它有效...

【讨论】:

以上是关于如何以管理员权限启动 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章

如何配置用非Windows管理员用户启动MSSQL 2005/2008的服务

提权系列----Windows Service 服务器提权初识与exp提权,mysql提权

【Windows】自带提权的bat脚本

如何让程序开机自动启动,并以管理员权限运行

如何在没有我的 WPF 主机也以管理员权限运行的情况下以管理员权限启动进程以实现文件拖放?

windows下以普通用户权限启动apache服务