查找其帐户的服务被设置为“登录为”
问题描述:
如何找出用户帐户(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"]));
}
}
答
这将做你的工作
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