Класс Win32_Process

Класс WMIWin32_Process представляет процесс в операционной системе.

Следующий пример синтаксиса — упрощенный MOF-код, который включает все наследуемые свойства.

Примечание

Общие сведения о процессах и потоках в Windows см. в разделе Процессы и потоки.

Синтаксис

[Dynamic, Provider("CIMWin32"), SupportsCreate, CreateBy("Create"), SupportsDelete, DeleteBy("DeleteInstance"), UUID("{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Processes"), AMENDMENT]
class Win32_Process : CIM_Process
{
  string   CreationClassName;
  string   Caption;
  string   CommandLine;
  datetime CreationDate;
  string   CSCreationClassName;
  string   CSName;
  string   Description;
  string   ExecutablePath;
  uint16   ExecutionState;
  string   Handle;
  uint32   HandleCount;
  datetime InstallDate;
  uint64   KernelModeTime;
  uint32   MaximumWorkingSetSize;
  uint32   MinimumWorkingSetSize;
  string   Name;
  string   OSCreationClassName;
  string   OSName;
  uint64   OtherOperationCount;
  uint64   OtherTransferCount;
  uint32   PageFaults;
  uint32   PageFileUsage;
  uint32   ParentProcessId;
  uint32   PeakPageFileUsage;
  uint64   PeakVirtualSize;
  uint32   PeakWorkingSetSize;
  uint32   Priority;
  uint64   PrivatePageCount;
  uint32   ProcessId;
  uint32   QuotaNonPagedPoolUsage;
  uint32   QuotaPagedPoolUsage;
  uint32   QuotaPeakNonPagedPoolUsage;
  uint32   QuotaPeakPagedPoolUsage;
  uint64   ReadOperationCount;
  uint64   ReadTransferCount;
  uint32   SessionId;
  string   Status;
  datetime TerminationDate;
  uint32   ThreadCount;
  uint64   UserModeTime;
  uint64   VirtualSize;
  string   WindowsVersion;
  uint64   WorkingSetSize;
  uint64   WriteOperationCount;
  uint64   WriteTransferCount;
};

Члены

Класс Win32_Process имеет следующие типы членов:

Методы

Класс Win32_Process содержит эти методы.

Метод Описание
AttachDebugger Запускает зарегистрированный в данный момент отладчик для процесса.
Создать Создает новый процесс.
GetAvailableVirtualSize Извлекает текущий размер (в байтах) свободного виртуального адресного пространства, доступного для процесса.
Windows Server 2012, Windows 8, Windows 7, Windows Server 2008 и Windows Vista: этот метод не поддерживается до Windows 8.1 и Windows Server 2012 R2.
GetOwner Извлекает имя пользователя и доменное имя, под которым выполняется процесс.
GetOwnerSid Извлекает идентификатор безопасности (SID) для владельца процесса.
SetPriority Изменяет приоритет выполнения процесса.
Завершение Завершает процесс и все его потоки.

 

Свойства

Класс Win32_Process имеет эти свойства.

Caption

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: MaxLen (64), DisplayName ("Caption")

Краткое описание объекта — однострочный текст.

Это свойство наследуется от CIM_ManagedSystemElement.

CommandLine

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Командная строка для запуска процесса")

Командная строка, используемая для запуска определенного процесса, если применимо.

CreationClassName

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: CIM_Key, MaxLen (256), DisplayName ("Имя класса")

Имя класса или подкласса, используемого при создании экземпляра. При использовании с другими ключевыми свойствами класса это свойство позволяет уникально идентифицировать все экземпляры класса и его подклассы.

Это свойство наследуется от CIM_Process.

CreationDate

Тип данных: datetime

Тип доступа: только для чтения

Квалификаторы: Fixed, DisplayName ("CreationDate")

Дата начала выполнения процесса.

Это свойство наследуется от CIM_Process.

CSCreationClassName

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: распространяется ("CIM_OperatingSystem. CSCreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Computer System Class Name")

Имя класса создания системы компьютеров с областью действия.

Это свойство наследуется от CIM_Process.

CSName

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: распространяется ("CIM_OperatingSystem. CSName"), CIM_Key, MaxLen (256), DisplayName ("Computer System Name")

Имя системы компьютеров для определения области.

Это свойство наследуется от CIM_Process.

Описание

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Описание")

Описание объекта.

Это свойство наследуется от CIM_ManagedSystemElement.

Исполняемый путь

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: Privileges ("SeDebugPrivilege"), MappingStrings ("Win32API| | Структуры справки инструментов | MODULEENTRY32|szExePath), DisplayName ("Путь к исполняемому файлу")

Путь к исполняемому файлу процесса.

Пример: "C:\Windows\System\Explorer.Exe"

ExecutionState

Тип данных: uint16

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Состояние выполнения")

Текущее рабочее состояние процесса.

Это свойство наследуется от CIM_Process.

Неизвестно (0)

Неизвестно

Другое (1)

Другое

Готово (2)

Выполняется (3)

Заблокировано (4)

Блокировано

Приостановлено заблокировано (5)

Приостановка готовности (6)

Завершено (7)

Остановлено (8)

Растет (9)

Дескриптор

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: Key, MaxLen (256), DisplayName ("Handle")

Идентификатор процесса.

Это свойство наследуется от CIM_Process.

HandleCount

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Состояние процесса| SYSTEM_PROCESS_INFORMATION| HandleCount"), DisplayName ("Число дескрипторов")

Общее количество открытых дескрипторов, принадлежащих процессу. HandleCount — это сумма дескрипторов, открытых в данный момент каждым потоком в этом процессе. Дескриптор используется для проверки или изменения системных ресурсов. Каждый дескриптор содержит запись в таблице, которая поддерживается внутренне. Записи содержат адреса ресурсов и данные для определения типа ресурса.

InstallDate

Тип данных: datetime

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Дата установки")

Дата установки объекта. Объект может быть установлен без записи значения в это свойство.

Это свойство наследуется от CIM_ManagedSystemElement.

KernelModeTime

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: Override ("KernelModeTime"), Units ("100 nanoseconds")

Время в режиме ядра в миллисекундах. Если эти сведения недоступны, используйте значение 0 (ноль).

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Создание скриптов в WMI.

MaximumWorkingSetSize

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: Privileges ("SeDebugPrivilege"), MappingStrings ("Win32| | WINNT. H| QUOTA_LIMITS| MaximumWorkingSetSize"), DisplayName ("Максимальный размер рабочего набора"), Единицы ("килобайты")

Максимальный размер рабочего набора процесса. Рабочий набор процесса — это набор страниц памяти, видимых процессу в физической ОЗУ. Эти страницы являются резидентами и доступны для использования приложением без активации ошибки страницы.

Пример: 1413120

MinimumWorkingSetSize

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: Privileges ("SeDebugPrivilege"), MappingStrings ("Win32| | WINNT. H| QUOTA_LIMITS| MinimumWorkingSetSize"), DisplayName ("Минимальный размер рабочего набора"), Единицы ("килобайты")

Минимальный размер рабочего набора процесса. Рабочий набор процесса — это набор страниц памяти, видимых процессу в физической ОЗУ. Эти страницы являются резидентными и доступны для использования приложением без активации ошибки страницы.

Пример: 20480

имя;

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Имя")

Имя исполняемого файла, ответственного за процесс, эквивалентно свойству Имя образа в диспетчере задач.

При наследовалении подклассом свойство может быть переопределено как ключевое свойство. Имя жестко закодировано в самом приложении и не зависит от изменения имени файла. Например, даже если переименовать Calc.exe, имя Calc.exe по-прежнему будет отображаться в диспетчере задач и во всех скриптах WMI, извлекающих имя процесса.

Это свойство наследуется от CIM_ManagedSystemElement.

OSCreationClassName

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: распространяется ("CIM_OperatingSystem. CreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Имя класса операционной системы")

Имя класса создания операционной системы для определения области.

Это свойство наследуется от CIM_Process.

ИМЯ OSName

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: распространяется ("CIM_OperatingSystem. NameCIM_Key,MaxLen (256), DisplayName ("Имя операционной системы")

Имя операционной системы области.

Это свойство наследуется от CIM_Process.

OtherOperationCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Структуры процессов и потоков | SYSTEM_PROCESS_INFORMATION| OtherOperationCount"), DisplayName ("Other Operation Count")

Количество выполненных операций ввода-вывода, которые не являются операциями чтения или записи.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Создание скриптов в WMI.

OtherTransferCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Структуры процессов и потоков | SYSTEM_PROCESS_INFORMATION| OtherTransferCount"), DisplayName ("Other Transfer Count"), Units ("bytes")

Объем данных, передаваемых во время операций, которые не являются операциями чтения или записи.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Создание скриптов в WMI.

PageFaults

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Состояние процесса| SYSTEM_PROCESS_INFORMATION| PageFaultCount"), DisplayName ("Количество ошибок страниц")

Количество ошибок страниц, создаваемых процессом.

Пример: 10

PageFileUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Состояние процесса| SYSTEM_PROCESS_INFORMATION| PagefileUsage"), DisplayName ("Использование файла подкачки"), единицы измерения ("килобайты")

Объем пространства файла подкачки, используемый процессом в данный момент. Это значение согласуется со значением VMSize в TaskMgr.exe.

Пример: 102435

ParentProcessId

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| Состояние процесса| SYSTEM_PROCESS_INFORMATION| InheritedFromUniqueProcessId"), DisplayName ("Идентификатор родительского процесса")

Уникальный идентификатор процесса, создающего процесс. Номера идентификаторов процессов используются повторно, поэтому они определяют только процесс на время существования этого процесса. Возможно, процесс, определяемый ParentProcessId , завершен, поэтому ParentProcessId может не ссылаться на выполняющийся процесс. Возможно также, что ParentProcessId неправильно ссылается на процесс, который повторно использует идентификатор процесса. Свойство CreationDate можно использовать, чтобы определить, был ли указанный родительский элемент создан после создания процесса, представленного этим экземпляром Win32_Process .

PeakPageFileUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| PeakPagefileUsage"), DisplayName ("Пиковое использование файла страницы"), единицы измерения ("килобайты")

Максимальный объем пространства в файлах подкачки, используемый в течение всего процесса.

Пример: 102367

PeakVirtualSize

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| PeakVirtualSize), DisplayName ("Пиковое использование вируального адресного пространства"), единицы измерения ("байты")

Максимальное виртуальное адресное пространство, которое процесс использует в любой момент времени. Использование виртуального адресного пространства не обязательно подразумевает соответствующее использование дисков или main страниц памяти. Однако виртуальное пространство ограничено, и при слишком большом использовании процесс может не загружать библиотеки.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

PeakWorkingSetSize

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| PeakWorkingSetSize), DisplayName ("Размер пикового рабочего набора"), единицы измерения ("килобайты")

Максимальный размер рабочего набора процесса.

Пример: 1413120

Приоритет

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: Override ("Priority"), MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| BasePriority"), DisplayName ("Priority")

Планирование приоритета процесса в операционной системе. Чем выше значение, тем выше приоритет, получаемый процессом. Значения приоритета могут варьироваться от 0 (нуль), что является самым низким приоритетом, до 31, что является наивысшим приоритетом.

Пример: 7

PrivatePageCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| PrivatePageCount"), DisplayName ("Private Page Count")

Текущее количество выделенных страниц, доступных только для процесса, представленного этим экземпляром Win32_Process .

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

ProcessId

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Структуры процессов и потоков| PROCESS_INFORMATION|dwProcessId "), DisplayName ("Идентификатор процесса")

Числовой идентификатор, используемый для отличия одного процесса от другого. Идентификаторы процессов допустимы от времени создания процесса до завершения процесса. После завершения этот же числовой идентификатор можно применить к новому процессу.

Это означает, что вы не можете использовать ProcessID только для мониторинга определенного процесса. Например, приложение может иметь ProcessID 7, а затем завершиться сбоем. При запуске нового процесса ему можно назначить ProcessID 7. Таким образом, скрипт, проверяющий только указанный ProcessID, может быть "обманут", чтобы думать, что исходное приложение по-прежнему выполняется.

QuotaNonPagedPoolUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| QuotaNonPagedPoolUsage"), DisplayName ("Квота использования нестраничного пула")

Квота использования непагрегированного пула для процесса.

Пример: 15

QuotaPagedPoolUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| QuotaPagedPoolUsage"), DisplayName ("Страничные квоты на использование пула")

Квота использования выстраивного пула для процесса.

Пример: 22

QuotaPeakNonPagedPoolUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| QuotaPeakNonPagedPoolUsage), DisplayName ("Пиковая квота использования нестраничного пула")

Пиковая квота использования непагрегированного пула для процесса.

Пример: 31

QuotaPeakPagedPoolUsage

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| QuotaPeakPagedPoolUsage"), DisplayName ("Пиковая квота использования пула с разбивкой на страницы")

Пиковая квота использования выстраивного пула для процесса.

Пример: 31

ReadOperationCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Структуры процессов и потоков| SYSTEM_PROCESS_INFORMATION| ReadOperationCount"), DisplayName ("Read Operation Count")

Количество выполненных операций чтения.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

ReadTransferCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Структуры процессов и потоков| SYSTEM_PROCESS_INFORMATION| ReadTransferCount"), DisplayName ("Read Transfer Count"), Units ("байты")

Объем считываемых данных.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

SessionId

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| SessionId"), DisplayName ("Идентификатор сеанса")

Уникальный идентификатор, создаваемый операционной системой при создании сеанса. Сеанс охватывает период времени от входа до выхода из определенной системы.

Состояние

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: MaxLen (10), DisplayName ("Status")

Это свойство не реализовано и не заполняется ни для одного экземпляра этого класса. Всегда имеет значение NULL.

Это свойство наследуется от CIM_ManagedSystemElement.

В эти значения входят:

ОК ("ОК")

Ошибка ("Ошибка")

Пониженный ("Пониженный")

Unknown ("Unknown")

Pred Fail ("Pred Fail")

Запуск ("Начало")

Остановка ("Остановка")

Служба ("Служба")

Подчеркнуто ("Подчеркнуто")

NonRecover ("NonRecover")

Нет контакта ("Нет контакта")

Lost Comm ("Lost Comm")

TerminationDate

Тип данных: datetime

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Дата завершения")

Процесс был остановлен или завершен. Чтобы получить время завершения, дескриптор процесса должен быть открыт. В противном случае это свойство возвращает значение NULL.

Это свойство наследуется от CIM_Process.

ThreadCount

Тип данных: uint32

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| NumberOfThreads"), DisplayName ("Число потоков")

Количество активных потоков в процессе. Инструкция — это базовая единица выполнения в процессоре, а поток — это объект, который выполняет инструкцию. Каждый выполняемый процесс содержит по крайней мере один поток.

UserModeTime

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: Переопределение ("UserModeTime"), единицы измерения ("100 наносекунд")

Время в пользовательском режиме в 100 единицах наносекунд. Если эти сведения недоступны, используйте значение 0 (ноль).

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

VirtualSize

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Состояние процесса| SYSTEM_PROCESS_INFORMATION| VirtualSize"), DisplayName ("Использование виртуального адресного пространства"), единицы измерения ("байты")

Текущий размер виртуального адресного пространства, используемого процессом, а не физической или виртуальной памяти, фактически используемой процессом. Использование виртуального адресного пространства не обязательно подразумевает соответствующее использование дисков или main страниц памяти. Виртуальное пространство ограничено, и при слишком большом использовании процесс может не загружать библиотеки. Это значение соответствует тому, что отображается в Perfmon.exe.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

WindowsVersion

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Функции процессов и потоков | GetProcessVersion"), DisplayName ("Версия Windows")

Версия Windows, в которой выполняется процесс.

Пример: 4.0

WorkingSetSize

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: DisplayName ("Размер рабочего набора"), единицы измерения ("байты")

Объем памяти в байтах, необходимый процессу для эффективного выполнения, для операционной системы, которая использует управление памятью на основе страниц. Если в системе недостаточно памяти (меньше размера рабочего набора), происходит обмотка. Если размер рабочего набора неизвестен, используйте значение NULL или 0 (ноль). Если предоставляются данные рабочего набора, вы можете отслеживать сведения, чтобы понять изменяющиеся требования к памяти процесса.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

Это свойство наследуется от CIM_Process.

WriteOperationCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Структуры процессов и потоков| SYSTEM_PROCESS_INFORMATION| WriteOperationCount), DisplayName ("Число операций записи")

Количество выполненных операций записи.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

WriteTransferCount

Тип данных: uint64

Тип доступа: только для чтения

Квалификаторы: MappingStrings ("Win32API| | Структуры процессов и потоков| SYSTEM_PROCESS_INFORMATION| WriteTransferCount"), DisplayName ("Write Transfer Count"), Units ("байты")

Объем записанных данных.

Дополнительные сведения об использовании значений uint64 в скриптах см. в разделе Скрипты в WMI.

Комментарии

Класс Win32_Process является производным от CIM_Process. Вызывающий процесс, использующий этот класс, должен иметь SE_RESTORE_NAME привилегии на компьютере, на котором находится реестр. Дополнительные сведения см. в разделе Выполнение привилегированных операций.

Общие сведения

Процессы лежат в основе почти всего, что происходит на компьютере. На самом деле, основная причина большинства проблем с компьютером может быть трассирована в процессах; например, на компьютере может выполняться слишком много процессов (и бороться за конечный набор ресурсов) или один процесс может использовать больше, чем его доля ресурсов. Эти факторы делают важным сохранять близкие watch к процессам, выполняемым на компьютере. Мониторинг процессов, main активность в управлении процессами, позволяет определить, что на самом деле делает компьютер, какие приложения на нем выполняются и как эти приложения влияют на изменения в вычислительной среде.

Мониторинг процесса

Процессы мониторинга на регулярной основе помогают гарантировать, что компьютер работает с максимальной эффективностью и что он выполняет назначенные задачи должным образом. Например, отслеживая процессы, вы можете немедленно получать уведомления о любом приложении, которое перестало отвечать на запросы, а затем принять меры для завершения этого процесса. Кроме того, мониторинг процессов позволяет выявлять проблемы до их возникновения. Например, многократно проверяя объем памяти, используемый процессом, можно определить утечку памяти. Затем можно остановить процесс до того, как приложение с ошибками использует всю доступную память и остановит компьютер.

Мониторинг процессов также помогает свести к минимуму перебои, вызванные запланированными сбоями при обновлении и обслуживании. Например, проверив состояние приложения базы данных, работающего на клиентских компьютерах, можно определить влияние перехода базы данных в автономный режим для обновления программного обеспечения.

Мониторинг доступности процессов. Измеряет процент доступности процесса. Доступность обычно отслеживается с помощью простой пробы, которая сообщает, выполняется ли процесс. Отслеживая результаты каждой пробы, можно вычислить доступность процесса. Например, процесс, который проверяется 100 раз и отвечает в 95 случаях, имеет доступность 95 процентов. Этот тип мониторинга обычно зарезервирован для баз данных, почтовых программ и других приложений, которые должны выполняться постоянно. Он не подходит для текстовых программ, электронных таблиц или других приложений, которые регулярно запускаются и останавливаются несколько раз в день.

Для настройки процесса можно создать экземпляр класса Win32_ProcessStartup .

Производительность процесса можно отслеживать с помощью класса Win32_PerfFormattedData_PerfProc_Process и объекта средства обновления WMI, например SWbemRefresher. Дополнительные сведения см. в разделе Мониторинг данных производительности.

Примеры

В примере кода PowerShell List the Properties of WMI Classes (Список свойств классов WMI ) в коллекции TechNet описывается класс Win32_Process и выводится результат в формате Excel.

Выполнение процесса на нескольких серверах завершает процесс, запущенный на одном или нескольких компьютерах.

В разделе Пример. Вызов метода поставщика код использует C++ для вызова Win32_Process для создания процесса.

Доступность — это простейшая форма мониторинга процессов: при таком подходе вы просто убедитесь, что процесс запущен. При мониторинге доступности процессов обычно извлекается список процессов, запущенных на компьютере, а затем проверяется, что определенный процесс по-прежнему активен. Если процесс активен, он считается доступным. Если процесс неактивен, он недоступен. Следующий пример VBScript отслеживает доступность процессов, проверяя список процессов, выполняющихся на компьютере, и отправляя уведомление, если Database.exe процесс не найден.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Database.exe'")
If colProcesses.Count = 0 Then
 Wscript.Echo "Database.exe is not running."
Else
 Wscript.Echo "Database.exe is running."
End If

Следующий пример VBScript отслеживает создание процесса с помощью временного потребителя событий.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent " _
                                                     & "WITHIN 10 WHERE TargetInstance ISA 'Win32_Process'")
i = 0
Do While i = 0
 Set objLatestProcess = colMonitoredProcesses.NextEvent
 Wscript.Echo objLatestProcess.TargetInstance.Name, Now
Loop

Следующий VBScript отслеживает сведения о производительности процессов.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcessList
 Wscript.Echo "Process: " & objProcess.Name
 Wscript.Echo "Process ID: " & objProcess.ProcessID
 Wscript.Echo "Thread Count: " & objProcess.ThreadCount
 Wscript.Echo "Page File Size: " & objProcess.PageFileUsage
 Wscript.Echo "Page Faults: " & objProcess.PageFaults
 Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize
Next

В следующем примере кода VBScript показано, как получить владельца каждого процесса на локальном компьютере. Этот скрипт можно использовать для получения данных с удаленного компьютера, например для определения пользователей процессов, выполняющих сервер терминалов, заменив имя удаленного компьютера на "." в первой строке. Вы также должны быть администратором на удаленном компьютере.

strComputer = "." 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery("select * from win32_process" )
For Each objProcess in colProcesses

  If objProcess.GetOwner ( User, Domain ) = 0 Then
    Wscript.Echo "Process " & objProcess.Caption & " belongs to " & Domain & "\" & User
  Else
    Wscript.Echo "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
  End If
Next

В следующем примере кода VBScript показано, как получить сеанс входа, связанный с запущенным процессом. Процесс должен быть запущен Notepad.exe перед запуском скрипта. В этом примере находятся экземпляры Win32_LogonSession , связанные с Win32_Process , представляющей Notepad.exe. Win32_SessionProcess указывается в качестве класса ассоциации. Дополнительные сведения см. в разделе ASSOCIATORS OF Statement.

On error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
  ProcessId = objProcess.ProcessId
  Set colLogonSessions = objWMIService.ExecQuery("Associators of {Win32_Process='" & ProcessId & "'} " _
                                               & "Where Resultclass = Win32_LogonSession Assocclass = Win32_SessionProcess", "WQL", 48)
  If Err <> 0 Then
    WScript.Echo "Error on associators query= " & Err.number & " " & Err.Description
    WScript.Quit
  End If
  For Each LogonSession in colLogonSessions
    Wscript.Echo " Logon id is " & LogonSession.LogonId
  Next
Next

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Пространство имен
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

См. также раздел

CIM_Process

Классы операционной системы

Задачи WMI: процессы