Sunday, May 20, 2012

ManagementObject Get Owner example

!MUST ADD REFERENCE TO SYSTEM.DIAGNOSTICS EVEN IF U CAN DO USING!
static List<string> GetProcessOwner(string processName)
{
     
List<string> owners = new List<string>();
      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 DOMAIN\user
                   string owner = argList[1] + "\\" + argList[0];
                   owners.Add(owner);
          }
     }
     
return owners;
} //end GetProcessOwner

No comments:

Post a Comment