I have three remote computers that I connect to remotely. I am trying to write a simple Windows application that will appear in a single window regardless of whether any particular process is running on any of the computers, for example.
Server1: Chrome is not working
Server2: running Chrome IS
Server3: running Chrome IS
I used WMI and C #. So far I have a lot:
ConnectionOptions connectoptions = new ConnectionOptions(); connectoptions.Username = @"domain\username"; connectoptions.Password = "password"; //IP Address of the remote machine string ipAddress = "192.168.0.217"; ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2"); scope.Options = connectoptions; //Define the WMI query to be executed on the remote machine SelectQuery query = new SelectQuery("select * from Win32_Process"); using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query)) { ManagementObjectCollection collection = searcher.Get(); foreach (ManagementObject process in collection) { // dwarfs stole the code!! :'( } }
I think everything is set up correctly, but if I MessageBox.Show (process.ToString ()) inside the foreach loop, I get a whole bunch of message boxes with the following text:
\\username\root\cimv2:W32_Process.Handle="XXX"
I'm kinda stuck. Is there a way to "translate" XXX into the process name? Or else, how can I get the names of the processes so that I can use the if statement to check if this is a chrome process?
Or ... is my implementation redundant? Is there an easier way to do this?
Thank you so much!
Krzysiek
source share