据我所知,“ServiceController”没有从本地Windows服务中拉出“登录身份”信息的选项。
目前,我正在使用ServiceController向我提供服务的显示名称和当前状态,但我也想拉入“登录身份”信息。
我确实看到wmic可以使用以下命令从startname获取此信息:
wmic service get name,startname
目前这是我的代码:
public string GetLocalServices()
{
var sc = new System.ServiceProcess.ServiceController();
ServiceController[] svcList = ServiceController.GetServices();
try
{
foreach (ServiceController service in ServiceController.GetServices())
{
string serviceDisplayName = service.DisplayName;
string status = service.Status.ToString();
var serviceDetails = "Display Name: " + serviceDisplayName + "Service Status: " + status + "\r\n" + "\r\n";
File.AppendAllText(Path.Combine(_TempPath, @"LocalServices.txt"), serviceDetails.ToString());
}
return "Retrieving Local Services Information complete.";
}
catch (Exception ex)
{
return string.Concat("!!! Exception: Unable to gather information on local services ", ex.Message);
}
}
有没有人知道如何在这个类中查询wmic并将其附加到serviceDetails变量中,这样我也可以将登录作为信息打印出来?
发布于 2019-05-09 03:36:20
看看微软的WMI代码创建器工具(下面的下载链接)。该工具为您提供了C#中的代码片段,以满足您的需求。
https://www.microsoft.com/en-us/download/details.aspx?id=8572
单击该链接可查看该工具的工作原理。WMI Code Creator
https://stackoverflow.com/questions/56045449
复制相似问题