Перечисление процессов
У всех пользователей есть доступ на чтение к списку процессов в системе, и есть ряд различных функций, которые перечисляют активные процессы. Используемая функция будет зависеть от таких факторов, как поддержка требуемой платформы.
Для перечисления процессов используются следующие функции.
Функция | Описание |
---|---|
EnumProcesses | Извлекает идентификатор процесса для каждого объекта процесса в системе. |
Process32First | Извлекает сведения о первом процессе, обнаруженном в системном моментальном снимке. |
Process32Next | Извлекает сведения о следующем процессе, записанном в системном моментальном снимке. |
WTSEnumerateProcesses | Извлекает сведения о активных процессах на указанном сервере терминала. |
Функции инструментов и EnumProcesses перечисляют весь процесс. Чтобы получить список процессов, выполняемых в определенной учетной записи пользователя, используйте WTSEnumerateProcesses и отфильтруйте идентификатор безопасности пользователя. Идентификатор сеанса можно отфильтровать, чтобы скрыть процессы, выполняемые в других сеансах сервера терминала.
Вы также можете фильтровать процессы по учетной записи пользователя независимо от функции перечисления, вызвав OpenProcess, OpenProcessTokenи GetTokenInformation с TokenUser. Однако нельзя открыть процесс, защищенный дескриптором безопасности, если вы не получили доступ.