none
Process.GetProcesses Exception "Feature is not supported for remote machines"

    Question

  • On a recent deployment, my winform app encounters an exception when attempting to get the Process.StartTime from a remote computer (Exception is: Feature is not supported for remote machines).  For example, I want to check the start time of an application on a remote machine.  Interestingly, I can get the Process.Id and Process.ProcessName for running services on the remote machines without any problems, but not the start time or other more detailed specifics.  This winform app works fine in other environments.

    My winform app resides on a Win2K3 server and the remote machines are WinXP-SP2.  For testing, I have disabled Firewall and Anti-virus on the remote machines, and I still get the same problem.  Also, I am able to access the remote machine Services information without any problems from the server by manually using:  Admin Tools->Services->Action->Connect to another computer.

    The code looks like this...

    procList = Process.GetProcesses(machine);
    for (int i = 0; i < procList.Length; i++)
    {
         listView2.Items.Add(procListIdea.ProcessName);
         // Exception thrown....
         listView2.ItemsIdea.SubItems.Add(procListIdea.StartTime.ToString());
         ....

    In testing, I have also tried to get this information on the remote machine named D8D7Y571 by accessing Win32_Process.CreationDate...similar Exception is thrown.

    string queryString =
    "SELECT Name, ProcessId, Caption, CreationDate, ExecutablePath" +
    "  FROM Win32_Process";
    SelectQuery query = new SelectQuery(queryString);
    ManagementScope scope = new System.Management.ManagementScope(@"\\d8d7y571\root\CIMV2");
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
    ManagementObjectCollection processes = searcher.Get();

    foreach (ManagementObject mo in processes)
    {
     MessageBox.Show(mo["Name"].ToString());
     MessageBox.Show(mo["CreationDate"].ToString());
    }

    In this instance, I receive an Exception "The RPC Server is unavailable.  (Exception from HRESULT 0x8007068BA).  I have checked all RPC services on Server and remotes, and RPC services appear to be started and running on both ends.

    I am unsure as to why I can get the Process.Id and Process.ProcessName, but not the Process.StartTime.  Any help would be greatly appreciated!

    Jason

     

     

    Monday, May 22, 2006 1:10 PM

Answers