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

本文关键字:启动 Windows 服务 权限 管理员 | 更新日期: 2023-09-27 17:55:48

我有自己的应用程序服务器,它是与sql服务器通信的Windows服务,在某些情况下sql服务器服务是停止的,所以我通过这段代码声明

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

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

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

让我们将所有内容拆分为多个步骤

  1. 将文件"应用程序清单文件"添加到根目录
  2. 选择项目属性
  3. 在"应用程序"选项卡"资源组"组中,查找"清单"字段
  4. 粘贴新的清单文件名。可能是"应用程序清单"
  5. 用此信息填充文件

根据您的情况,所有信息可能会略有不同。更多信息

<?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>

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