命名空間未引用 using System.Management;
我已經在實施,而無需運行processName
用戶的域名在C#以下解決方案
這個檢索的用戶名結束了machineName
public static string GetProcessOwner()
{
try
{
var resultUserName = string.Empty;
ConnectionOptions opt = new ConnectionOptions();
string path = string.Format(@"\\{0}\root\cimv2", machineName);
ManagementScope scope = new ManagementScope(path, opt);
scope.Connect();
var query = new ObjectQuery(string.Format("Select * From Win32_Process Where Name = '{0}'", processName));
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
var processList = searcher.Get();
foreach (ManagementObject obj in processList)
{
string[] argList = new string[] { string.Empty, string.Empty };
int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
if (returnVal == 0)
{
// return DOMAIN\user
//return argList[1] + "\\" + argList[0];
resultUserName = argList[0];
}
}
return resultUserName;
}
catch (Exception exc)
{
Debug.WriteLine(exc.Message);
return string.Empty;
}
}
謝謝,這是好的,但我仍然需要解析生成的文件,我需要.NET代碼。 – 2012-02-06 17:45:51
嘗試'tasklist/S \\ [機器名稱]/V/FI「USERNAME eq [用戶名稱]」/ FI「IMAGENAME eq [進程名稱]」' – 2012-02-07 18:05:57
非常感謝! – 2012-02-07 18:48:12