您可以使用WMI来使用户拥有某个进程。要使用WMI,您需要在项目中添加对的引用
System.Management.dll。
按进程ID:
public string GetProcessOwner(int processId){ string query = "Select * From Win32_Process Where ProcessID = " + processId; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection 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 DOMAINuser return argList[1] + "\" + argList[0]; } } return "NO OWNER";}按进程名称 (仅查找第一个进程,进行相应调整):
public string GetProcessOwner(string processName){ string query = "Select * from Win32_Process Where Name = "" + processName + """; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection 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 DOMAINuser string owner = argList[1] + "\" + argList[0]; return owner; } } return "NO OWNER";}


