Странное поведение при WQL запросе к Win32_Process

При запросе SELECT * FROM Win32_Process возвращаются значения всех полей всех процессов.

Но при запросе SELECT ProcessID, ParentProcessID, Name, CreationDate, CommandLine FROM Win32_Process получаю исключение System.InvalidOperationException.

Вот метод, в котором возникает исключение:

public static List<Process> GetProcesses()
{
    var processes = new List<Process>();

    var query = "SELECT ProcessID, ParentProcessID, Name, CreationDate, CommandLine FROM Win32_Process";

    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
    {
        ManagementObjectCollection processesRaw = searcher.Get();
        foreach (ManagementObject process in processesRaw)
        {
            try
            {
                process.Get(); // Здесь возникает исключение
            }
            catch (ManagementException)
            {
                continue;
            }
            PropertyDataCollection properties = process.Properties;

            processes.Add(new Process(
                (string)properties["Name"].Value,
                (uint)properties["ProcessId"].Value,
                (uint)properties["ParentProcessId"].Value,
                properties["CommandLine"].Value is null ? "" : (string)properties["CommandLine"].Value,
                WmiDateToDateTime((string)properties["CreationDate"].Value))
            );
        }
    }

    return processes;
}

Ответы (0 шт):