SelectQuery query1 = new SelectQuery("Select * from Win32_Process"); ManagementObjectSearcher search1 = new ManagementObjectSearcher(query1); string text1 = null; try { foreach (ManagementObject disk in search1.Get()) { ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; inPar = disk.GetMethodParameters("GetOwner"); outPar = disk.InvokeMethod("GetOwner", inPar, null); text1 = disk["ProcessID"].ToString() +"_"+ outPar["User"] +"_"+ outPar["Domain"]; Console.WriteLine(text1); } Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); Console.ReadLine(); }原来以为会很复杂 测试后发现很简单的方式可以获得,在WinXP和Win2003 下面测试通过。