public void RebootSystem() { try { Log.WriteStart("RebootSystem"); WmiHelper wmi = new WmiHelper("root\\cimv2"); ManagementObjectCollection objOses = wmi.ExecuteQuery("SELECT * FROM Win32_OperatingSystem"); foreach (ManagementObject objOs in objOses) { objOs.Scope.Options.EnablePrivileges = true; objOs.InvokeMethod("Reboot", null); } Log.WriteEnd("RebootSystem"); } catch (Exception ex) { Log.WriteError("RebootSystem", ex); throw; } }
public WindowsProcess[] GetWindowsProcesses() { try { Log.WriteStart("GetWindowsProcesses"); List<WindowsProcess> winProcesses = new List<WindowsProcess>(); WmiHelper wmi = new WmiHelper("root\\cimv2"); ManagementObjectCollection objProcesses = wmi.ExecuteQuery( "SELECT * FROM Win32_Process"); foreach (ManagementObject objProcess in objProcesses) { int pid = Int32.Parse(objProcess["ProcessID"].ToString()); string name = objProcess["Name"].ToString(); // get user info string[] methodParams = new String[2]; objProcess.InvokeMethod("GetOwner", (object[])methodParams); string username = methodParams[0]; WindowsProcess winProcess = new WindowsProcess(); winProcess.Pid = pid; winProcess.Name = name; winProcess.Username = username; winProcess.MemUsage = Int64.Parse(objProcess["WorkingSetSize"].ToString()); winProcesses.Add(winProcess); } Log.WriteEnd("GetWindowsProcesses"); return winProcesses.ToArray(); } catch (Exception ex) { Log.WriteError("GetWindowsProcesses", ex); throw; } }