查找其帐户的服务被设置为“登录为”

问题描述:

如何找出用户帐户(Local System/User etc)服务被设置为下(“登录为”)运行?查找其帐户的服务被设置为“登录为”

与此similar question此代码不能从自身和服务可能没有运行该服务中运行。

System.ServiceProcess.ServiceController类有越来越状态而不是“登录为”用户有用的方法。

这是我知道的唯一途径,我发现它环顾四周,测试它,它的工作原理。请确保您使用的服务名称不是它的显示名称,您还需要添加一个引用到System.Management

string serviceName = "aspnet_state"; 

SelectQuery query = new System.Management.SelectQuery(string.Format(
    "select name, startname from Win32_Service where name = '{0}'", serviceName)); 
using (ManagementObjectSearcher searcher = 
    new System.Management.ManagementObjectSearcher(query)) 
{ 
    foreach (ManagementObject service in searcher.Get()) 
    { 
     Console.WriteLine(string.Format(
      "Name: {0} - Logon : {1} ", service["Name"], service["startname"])); 
    } 
} 

如何使用WMI和Win32_Service类与StartName参数?

This article可能会有所帮助。

这将做你的工作

Get-WMIObject Win32_Service | Where-Object {$_.startname -ne "localSystem" }| Where-Object {$_.startname -ne "NT AUTHORITY\LocalService" } |Where-Object {$_.startname -ne "NT AUTHORITY\NetworkService" } |select startname, name