Windows services 发现windows服务的权限设置

Windows services 发现windows服务的权限设置,windows-services,permissions,Windows Services,Permissions,我正在设置一个windows服务来监视其他服务,如果它们断开连接,将重新启动它们。出于安全原因,我决定在一个特殊的“服务”帐户上运行此服务,并且对于每个服务,它应该具有管理员授予服务帐户的访问权限 为了做到这一点,我使用了“ServiceController”类。我已经能够让它与本地计算机服务一起工作,但是当我尝试连接到计算机上的另一个网络时,我得到一个InvalidOperation异常。我是否可以向服务帐户授予“浏览”或“发现”权限 '第一行抛出异常,即使服务帐户已为该'特定服务和该特定计算

我正在设置一个windows服务来监视其他服务,如果它们断开连接,将重新启动它们。出于安全原因,我决定在一个特殊的“服务”帐户上运行此服务,并且对于每个服务,它应该具有管理员授予服务帐户的访问权限

为了做到这一点,我使用了“ServiceController”类。我已经能够让它与本地计算机服务一起工作,但是当我尝试连接到计算机上的另一个网络时,我得到一个InvalidOperation异常。我是否可以向服务帐户授予“浏览”或“发现”权限

'第一行抛出异常,即使服务帐户已为该'特定服务和该特定计算机设置了权限。如果服务“位于同一台机器上”,同样可以正常工作

services = ServiceController.GetServices(serviceComputer).ToList()
Dim serviceOfInterest As ServiceController = (From service In _
                                                 services.DefaultIfEmpty(Nothing) _
                                                 Where service.ServiceName = "SomeServiceName" _
                                                 Select service).SingleOrDefault()
serviceOfInterest.Start();

此处描述了您需要的权限:

具体来说,要获得服务列表,您需要SC_MANAGER_ENUMERATE_服务。根据上面链接中的表格,此权限授予:

  • 本地认证用户
  • 本地系统
  • 内置\管理员

显然,在远程连接时,前两个选项已不存在,您只剩下一个选项--成为本地管理员组的一部分

感谢Seva的链接。这很有帮助。如果我已经知道确切的计算机和服务名称,您认为帐户是否需要“SC_管理者_枚举_服务”特权。