Устранение неполадок с высокой загрузкой ЦП WMI

В этой статье описывается, как диагностировать проблемы с высокой загрузкой ЦП инструментария управления Windows (WMI) в любой операционной системе Windows.

Определение проблемы

В большинстве случаев ЦП потребляется процессомWmiPrvse.exe , и есть несколько экземпляров, в которых svchost.exe , размещающая службу WMI (Winmgmt), потребляет высокую загрузку ЦП.

Просмотрите область "Процессы" или "Сведения" диспетчера задач, чтобы определить точный процесс.

Определите, является ли процесс WmiPrvse.exe или svchost.exe (размещена служба WMI Winmgmt), и определите идентификатор процесса.

Примечание.

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

Ниже приведен пример. Перейдите враздел Сведения одиспетчере> задач, отсортируйте по имени и найдите WmiPrvse.exe процесс, который потребляет высокую загрузку ЦП. Запишите идентификатор процесса (PID).

На этом снимку экрана показаны активные несколько экземпляров узла поставщика WMI ( процессWmiPrvse.exe ) и загрузка ЦП.

Снимок экрана: процесс с помощью диспетчера задач.

На этом снимку экрана показан узел служб: инструментирование управления Windows (svchost.exe размещения службы Winmgmt) и загрузка ЦП.

Снимок экрана: сведения с помощью диспетчера задач.

Перейдите враздел Службыдиспетчера> задач, выполните сортировку по имени и найдите службу Winmgmt. Запишите PID. Щелкните правой кнопкой мыши службу и выберите Перейти к сведениям , чтобы найти процессsvchost.exe следующим образом:

Снимок экрана: службы с помощью диспетчера задач.

В этом примере из трех экземпляровWmiPrvse.exe находится PID 3648, который потребляет около 25 % загрузки ЦП. Winmgmt размещается в процессеsvchost.exe с PID 2752.

Общие сведения о потреблении ЦП

Это в основном включает в себя наблюдение за общим потреблением ЦП и выявленным PID. Важно отметить, когда, как и частоту потребления ЦП.

Оцените ситуацию, поняв, является ли потребление ЦП высоким в течение определенного времени. Проверьте, есть ли какие-либо действия, например выполнение определенных задач или служб, запуск приложений для мониторинга или выполнение сценариев, приводящих к WmiPrvse.exe или высокой загрузке ЦП Winmgmt.

Узнайте, есть ли какая-либо закономерность. Это означает, что загрузка ЦП является согласованной, несогласованной, случайной, спорадической или имеет регулярные пики.

Определите частоту потребления ЦП. Проверьте, происходит ли это только в рабочее время, в нерабочее время или в случайное время суток. Это также может произойти во время определенного действия, например при входе или выходе пользователя.

Вы можете использовать диспетчер задач и визуально заметить, как используется шаблон использования ЦП.

Ниже приведен пример использования средства Монитор производительности (Perfmon) для идентификации точных экземпляров WmiPrvse.exe с идентификатором PID, который вы определили. Вы также можете получить графическое представление потребления ЦП любым процессом (WmiPrvse.exe или svchost.exe , где размещается служба WMI).

  1. Откройте командную строку с повышенными привилегиями и введите Perfmon.

  2. Выберите Монитор производительности в левой области и выберите знак плюса (+) в правой области, чтобы открыть окно Добавление счетчиков.

  3. Разверните узел Процесс и выберите Процесс идентификации. Выберите все экземпляры WmiPrvse# , а затем нажмите кнопку Добавить>ОК.

    Снимок экрана: добавление счетчиков процесса идентификации.

    Снимок экрана: сведения о счетчиках процесса идентификации.

  4. В окне Добавление счетчиков разверните узел Процесс и выберите %Время процессора. Выберите параметр WmiPrvse# , соответствующий PID, потребляющий высокую загрузку ЦП, и нажмите кнопку Добавить>ОК.

    Снимок экрана: добавление счетчиков времени процессора.

    Снимок экрана: сведения о счетчиках %Processor Time.

  5. Для счетчика "Процесс идентификации" все значения Last, Average, Minimum и Maximum представляют piD соответствующего процессаWmiPrvse.exe . После определения точного экземпляра, который потребляет высокую загрузку ЦП, вы можете удалить оставшиеся экземпляры экземпляров WmiPrvse# из списка, нажав кнопку Удалить.

В примере отмечается, что WmiPrvse.exe PID 556 потреблял высокую загрузку ЦП, а WmiPrvse#1 соответствует PID 556 в Монитор производительности.

Затем добавляется счетчик %Время процессораWmiPrvse#1 , чтобы просмотреть динамическое графическое представление использования ЦП в этом процессе. В этом примере цвет %Processor Timeдля WmiPrvse#1 изменяется с желтого на красный.

Действия по поиску правильного Svchost# в Монитор производительности в случае высокой загрузки ЦП с помощьюsvchost.exe размещения службы Wmimgmt.

Если вы заметили, что процессsvchost.exe , в котором размещена служба WMI, вызывает высокую загрузку ЦП и подозреваете, что WMI способствует возникновению проблемы, можно проверить, является ли piD процессаsvchost.exe , где размещена служба WMI, выполнив следующую команду:

tasklist /svc /fi "Services eq Winmgmt"

Если процессsvchost.exe содержит несколько служб, вы можете разбить службу WMI на собственный процессsvchost.exe , выполнив следующие действия.

  1. Откройте командную строку с повышенными привилегиями.

  2. Выполните следующую команду:

    sc config Winmgmt type= own
    
  3. Перезапустите службу WMI.

После перезапуска службы можно выполнить Tasklist /svc команду, чтобы проверка, если служба Winmgmt работает в собственном svchost.exe процессе.

После устранения проблемы или после того, как служба больше не должна находиться в собственном svchost.exe процессе, вы можете поместить ее обратно в общий процессsvchost.exe . Это действие можно выполнить, выполнив следующую команду из командной строки и повторно перезапустив службу WMI:

sc config Winmgmt type= share

Диагностика WmiPrvse.exe

До сих пор у вас есть только точный PID WmiPrvse.exe , который потребляет высокую загрузку ЦП. Затем соберите как можно больше сведений об этом PID. Это помогает оценить ситуацию или определить то, что может вызвать проблему. Соберите сведения об использовании других ресурсов или определите точный поставщик WMI (DLL), размещенный WmiPrvse.exe PID.

Другое использование ресурсов, например память, дескрипторы, потоки и имя пользователя

Соберите сведения об использовании других ресурсов, таких как память, дескриптора, потоки и имя пользователя, во время высокой загрузки ЦП. Вы можете использовать вкладку Сведения в диспетчере задач, выбрать точный piD и просмотреть его.

Примечание.

При необходимости добавьте дополнительные столбцы.

Снимок экрана: служба высокой загрузки ЦП в диспетчере задач.

Определение точного поставщика WMI (DLL), размещенного WmiPrvse.exe PID.

Обработка Обозреватель может помочь вам определить точных поставщиков, размещенных в определяемом PID. Выполните следующие действия:

  1. Запустите Обозреватель процесса от имени администратора. Найдите идентифицированный WmiPrvse.exe PID, перейдите к его свойствам и перейдите на вкладку Поставщики WMI .

  2. В следующем примере обнаружена WmiPrvse.exe PID 556:

    • Поставщик WMI: MS_NT_EVENTLOG_PROVIDER
    • Пространства имен: root\CIMV2
    • Путь к DLL: %systemroot%\system32\wbem\ntevt.dll

    Снимок экрана: свойства WmiPrvSE.exe:556.

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

В некоторых случаях, если проблема возникает периодически или редко, WmiPrvse.exe , вызывающая проблему, может быть завершена со временем. При повторном возникновении проблемы это могут быть те же поставщики в новом экземпляреWmiPrvse.exe . В этой ситуации, как только поставщики отмечены, выполните следующий командлет, чтобы отобразить текущий PID WmiPrvse.exe процесса, содержащего этот поставщик:

tasklist /m <Provider DLL>

Пример:

tasklist /m ntevt.dll 

Снимок экрана: выходные данные списка задач ntevt.dll файла.

Поэтому важно понимать, какие поставщики загружаются в процессеWmiPrvse.exe , и каждый раз заносить piD WmiPrvse.exe процесса.

После того как у вас есть поставщики, которые загружаются в WmiPrvse.exe что приводит к высокой загрузке ЦП, вы можете понять, обрабатывает ли он какие-либо задачи.

Задачи могут быть входящими запросами WMI, которые отправляются клиентским процессом в службу WMI, которая затем назначается соответствующему процессу поставщика WMI. В этом примере задача отправляется поставщику MS_NT_EVENTLOG_PROVIDER . Поэтому следующим шагом будет изучение входящих запросов и задач к поставщику MS_NT_EVENTLOG_PROVIDER .

Анализ входящих запросов

Изучение входящих запросов включает в себя:

  • Определение запросов WMI, которые обрабатываются поставщиками WMI, что приводит к высокой загрузке ЦП.
  • Запросы классов WMI.
  • Связанный пользователь.
  • Клиентский процесс, инициирующий запрос.

Приведенные выше сведения можно собрать с помощью общедоступного средства WMIMon или WMI-Activity операционных журналов и WMI-Tracing доступных в Просмотр событий.

Операционные журналы: Microsoft-Windows-WMI-Activity/Operational

Входящие запросы регистрируются как операционные события в журнале Microsoft-Windows-WMI-Activity/Operational, который доступен в следующих разделах:

> Просмотр событий Журналы приложений и служб>Microsoft>Windows>WMI-Activity

Регистрируются события нескольких типов.

Если время от времени завершается процессWmiPrvse.exe , потребляющий большой объем ЦП, и вы уже знаете, какие поставщики загружены, следующее событие может помочь определить текущий активный процессWmiPrvse.exe , в котором размещен соответствующий поставщик.

Log Name:      Microsoft-Windows-WMI-Activity/Operational
Source:        Microsoft-Windows-WMI-Activity
Event ID:      5857
Task Category: None
User:          NETWORK SERVICE
Description:
MS_NT_EVENTLOG_PROVIDER provider started with result code 0x0. HostProcess = wmiprvse.exe; ProcessID = 556; ProviderPath = %systemroot%\system32\wbem\ntevt.dll

Включение "Журналы аналитики и отладки" для включения трассировки WMI

В Просмотр событий выберите Просмотреть>журналы аналитики и отладки, чтобы включить отладку и трассировку для WMI-Activity.

Снимок экрана: операции в Просмотр событий.

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

Примечание.

Включение show Analytics и Debug Logs позволяет выполнять отладку и трассировку почти для всех источников событий, а также создавать дополнительные журналы. Таким образом, этот параметр должен быть отключен после завершения исследования и больше не будет использоваться.

Эта трассировка может быть включена, когда вы наблюдаете высокую загрузку ЦП WmiPrvse.exe процессом или достаточно долго, чтобы зафиксировать поведение высокой загрузки ЦП, чтобы сохранить журналы в чистоте и умеренном размерах для упрощения анализа трассировок.

  1. Экспортируйте трассировки, щелкнув правой кнопкой мыши трассировку и выбрав Сохранить все события как....

  2. Выберите .xml или .csv в поле Сохранить как тип.

    Примечание.

    При необходимости можно выбрать другие знакомые форматы .EVTX .

  3. Выберите нужный язык файла трассировки.

  4. Вы также можете сохранить WMI-Activity операционные события отдельно, в нужном формате для просмотра и анализа.

Просмотр файлов трассировки WMI

В трассировке WMI есть несколько важных операций, которые являются частью входящих запросов WMI. Операции описаны в интерфейсе IWbemServices (wbemcli.h).

Вот некоторые из важных операций:

  • IWbemServices::ExecQuery method (wbemcli.h)
  • IWbemServices::ExecMethod method (wbemcli.h)
  • IWbemServices::ExecQueryAsync method (wbemcli.h)

Вот одна из записей журнала из сохраненного CSV-файла WMI-Tracing:

Level дата и время; Source Идентификатор события Категория задачи Описание
Сведения 05-05-23 14:48 Действие Microsoft-Windows-WMI 11 Нет CorrelationId = {345E5566-0000-0000-0000-68343241D901}; GroupOperationId = 30693; OperationId = 30694; Operation = Start IWbemServices::ExecQuery - root\cimv2 : select * из Win32_Product; ClientMachine = 21H2W10M; User = CONTOSO\<UserName>; ClientProcessId = 5484; NamespaceName = 133277000000783520

Аналогичное событие в формате XML выглядит следующим образом:

 <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
<System> 
<Provider Name="Microsoft-Windows-WMI-Activity" Guid="{1418ef04-b0b4-4623-bf7e-d74ab47bbdaa}"/> 
<EventID>11</EventID> 
<Version>0</Version> 
<Level>4</Level> 
<Task>0</Task> 
<Opcode>0</Opcode> 
<Keywords>0x8000000000000000</Keywords> 
<TimeCreated SystemTime="2023-05-05T13:09:18.7442455Z"/> 
<EventRecordID>112</EventRecordID> 
<Correlation ActivityID="{eddc1bfb-0000-0000-0000-18b6cabf5949}"/> 
<Execution ProcessID="2752" ThreadID="4132"/> 
<Channel>Microsoft-Windows-WMI-Activity/Trace</Channel> 
<Computer>21H2W10M.contoso.com</Computer> 
<Security UserID="S-1-5-18"/> 
</System> 
<UserData> 
<Operation_New xmlns="http://manifests.microsoft.com/win/2006/windows/WMI"> 
<CorrelationId>{345E5566-0000-0000-0000-67343241D901}</CorrelationId> 
<GroupOperationId>28089</GroupOperationId> 
<OperationId>28090</OperationId> 
<Operation>Start IWbemServices::ExecQuery - root\cimv2 : select * from Win32_Product</Operation> 
<ClientMachine>21H2W10M</ClientMachine> 
<ClientMachineFQDN>21H2W10M.contoso.com</ClientMachineFQDN> 
<User>CONTOSO\<UserName></User> 
<ClientProcessId>5484</ClientProcessId> 
<ClientProcessCreationTime>133277000000783520</ClientProcessCreationTime> 
<NamespaceName>\\.\root\cimv2</NamespaceName> 
<IsLocal>true</IsLocal> 
</Operation_New> 
</UserData> 
<RenderingInfo Culture="en-US"> 
<Message>CorrelationId = {345E5566-0000-0000-0000-67343241D901}; GroupOperationId = 28089; OperationId = 28090; Operation = Start IWbemServices::ExecQuery - root\cimv2 : select * from Win32_Product; ClientMachine = 21H2W10M; User = CONTOSO\<UserName>; ClientProcessId = 5484; NamespaceName = 133277000000783520</Message> 
<Level>Information</Level> 
<Task/> 
<Opcode>Info</Opcode> 
<Channel/> 
<Provider>Microsoft-Windows-WMI-Activity</Provider> 
<Keywords/> 
</RenderingInfo> 
</Event> 

Из приведенного выше примера выходных данных операции можно получить и понять следующие сведения:

  • Запрос был инициирован: 2023-05-05 в 13:09:18
  • На компьютере: 21H2W10M,
  • Из PID клиента: 5484
  • Идентификатор операции: 28089
  • Запрос: select * from Win32_Product.
  • Пространства имен: \\.\root\cimv2
  • Операции: IWbemServices::ExecQuery

Вот еще один журнал:

Level дата и время; Source Идентификатор события Категория задачи Описание
Сведения 05-05-23 14:47 Действие Microsoft-Windows-WMI 12 Нет ProviderInfo для GroupOperationId = 30641; Operation = Provider::CreateInstanceEnum — MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent; HostID = 556; ProviderName = MS_NT_EVENTLOG_PROVIDER; ProviderGuid = {FD4F53E0-65DC-11d1-AB64-00C04FD9159E}; Путь = %systemroot%\system32\wbem\ntevt.dll

То же самое событие в формате XML:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
<System> 
<Provider Name="Microsoft-Windows-WMI-Activity" Guid="{1418ef04-b0b4-4623-bf7e-d74ab47bbdaa}"/> 
<EventID>12</EventID> 
<Version>0</Version> 
<Level>4</Level> 
<Task>0</Task> 
<Opcode>0</Opcode> 
<Keywords>0x8000000000000000</Keywords> 
<TimeCreated SystemTime="2023-05-05T13:09:18.8438242Z"/> 
<EventRecordID>120</EventRecordID> 
<Correlation ActivityID="{2a353ead-0000-0000-0000-256f9de5fabd}"/> 
<Execution ProcessID="2752" ThreadID="4348"/> 
<Channel>Microsoft-Windows-WMI-Activity/Trace</Channel> 
<Computer>21H2W10M.contoso.com</Computer> 
<Security UserID="S-1-5-21-0000000000-0000000000-00000000-1103"/> 
</System> 
<UserData> 
<Operation_Provider_Info_New xmlns="http://manifests.microsoft.com/win/2006/windows/WMI"> 
<GroupOperationId>28096</GroupOperationId> 
<Operation>Provider::CreateInstanceEnum - MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent</Operation> 
<HostId>556</HostId> 
<ProviderName>MS_NT_EVENTLOG_PROVIDER</ProviderName> 
<ProviderGuid>{FD4F53E0-65DC-11d1-AB64-00C04FD9159E}</ProviderGuid> 
<Path>%systemroot%\system32\wbem\ntevt.dll</Path> 
</Operation_Provider_Info_New> 
</UserData> 
<RenderingInfo Culture="en-US"> 
<Message>ProviderInfo for GroupOperationId = 28096; Operation = Provider::CreateInstanceEnum - MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent; HostID = 556; ProviderName = MS_NT_EVENTLOG_PROVIDER; ProviderGuid = {FD4F53E0-65DC-11d1-AB64-00C04FD9159E}; Path = %systemroot%\system32\wbem\ntevt.dll</Message> 
<Level>Information</Level> 
<Task/> 
<Opcode>Info</Opcode> 
<Channel/> 
<Provider>Microsoft-Windows-WMI-Activity</Provider> 
<Keywords/> 
</RenderingInfo> 
</Event> 

Из выходных данных операции второго примера можно получить и понять следующие сведения:

  • Операция CreateInstanceEnum инициируется от имени пользователя с идентификатором безопасности: UserID="S-1-5-21-00000000000-000000000000-0000000-1103"
  • 05.05.2023 в 13:09
  • Точная операция: Provider::CreateInstanceEnum - MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent
  • Идентификатор узла: 556
  • Имя поставщика: MS_NT_EVENTLOG_PROVIDER
  • Путь к поставщику: %systemroot%\system32\wbem\ntevt.dll

Поиск идентификаторов PID клиента, которые вызывают высокую загрузку ЦП

Идея просмотра этого файла журнала заключается в перечислении операций, связанных с идентифицированным WmiPrvse.exe PID, который потребляет высокую загрузку ЦП, понимать входящие запросы и кто их инициирует (клиентский процесс).

В приведенном выше примере именно PID 552 вызывает высокую загрузку ЦП.

Во втором примере выходных данных журнала операция CreateInstanceEnum инициируется для определенного класса Win32_NTLogEventWMI .

Дополнительные сведения см. в Win32_NTLogEvent, включающую сведения о поставщике WMI, связанном с классом WMI.

Теперь вы знаете точный поставщик WMI, размещенный (MS_NT_EVENTLOG_PROVIDER) в WmiPrvse.exe который вызывает высокую загрузку ЦП, идентификатор узла (552) и класс WMI (Win32_NTLogEvent), который запрашивается каким-то клиентским процессом.

В зависимости от средства, используемого для проверки файлов трассировки, можно применить необходимые фильтры для проверки только операций, связанных с Win32_NTLogEvent PID 552 или WmiPrvse.exe идентификатором узла 552 или ntevt.dll.

Если фильтр отображает только строки или операции, включающие "Win32_NTLogEvent", результаты будут следующими:

Level Source Идентификатор события Описание
Сведения Действие Microsoft-Windows-WMI 11 CorrelationId = {345E5566-0000-0000-0000-68343241D901}; GroupOperationId = 30641; OperationId = 30642; Operation = Start IWbemServices::CreateInstanceEnum — root\cimv2 : Win32_NTLogEvent; ClientMachine = 21H2W10M; User = CONTOSO\<UserName>; ClientProcessId = 5484; NamespaceName = 133277000000783520
Сведения Действие Microsoft-Windows-WMI 12 ProviderInfo для GroupOperationId = 30641; Operation = Provider::CreateInstanceEnum — MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent; HostID = 556; ProviderName = MS_NT_EVENTLOG_PROVIDER; ProviderGuid = {FD4F53E0-65DC-11d1-AB64-00C04FD9159E}; Путь = %systemroot%\system32\wbem\ntevt.dll
Сведения Действие Microsoft-Windows-WMI 11 CorrelationId = {345E5566-0000-0000-0000-68343241D901}; GroupOperationId = 30697; OperationId = 30698; Operation = Start IWbemServices::CreateInstanceEnum — root\cimv2 : Win32_NTLogEvent; ClientMachine = 21H2W10M; User = CONTOSO\<UserName>; ClientProcessId = 5484; NamespaceName = 133277000000783520
Сведения Действие Microsoft-Windows-WMI 12 ProviderInfo для GroupOperationId = 30697; Operation = Provider::CreateInstanceEnum — MS_NT_EVENTLOG_PROVIDER : Win32_NTLogEvent; HostID = 556; ProviderName = MS_NT_EVENTLOG_PROVIDER; ProviderGuid = {FD4F53E0-65DC-11d1-AB64-00C04FD9159E}; Путь = %systemroot%\system32\wbem\ntevt.dll

Из приведенных выше операций можно получить следующие дополнительные сведения:

  • Timestamp
  • Идентификатор операции: 30642;
  • Точная операция = Start IWbemServices::CreateInstanceEnum - root\cimv2 : Win32_NTLogEvent;
  • Клиентский компьютер = 21H2W10M
  • User = CONTOSO\<UserName>
  • ИДЕНТИФИКАТОР клиента, который инициировал запрос: 5484

Наконец, у вас есть PID клиентского процесса 5484, который инициирует запрос к Win32_NTLogEvent. Это обрабатывается поставщиком MS_NT_EVENTLOG_PROVIDER и размещается в WmiPrvse.exe PID 552, что приводит к высокой загрузке ЦП.

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

Дополнительные сведения о WmiMon

WMImon.exe — это мощное средство мониторинга, позволяющее отслеживать и отслеживать системные события и использование ресурсов службой WMI.

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

Эти данные могут быть полезны системным администраторам, которым необходимо устранить проблемы с производительностью.

Чтобы собрать и проанализировать эти данные, выполните пошаговые инструкции:

  1. Определите PID WmiPrvSE.exe , который потребляет загрузку ЦП, с помощью описанных выше методов.
  2. Скачайте средствоWMIMon.exe из GitHub — luctalpe/WMIMon. Это средство предназначено для мониторинга активности WMI в Windows.
  3. Извлеките содержимое файлаWMIMon_Binaries.zip в папку на компьютере.
  4. Откройте командную строку от имени администратора и перейдите в папку, в которой вы извлекли файлы WMIMon.
  5. Выполните файлWMIMon.exe , введя WMIMon.exe в командной строке и нажав клавишу ВВОД.
  6. Теперь WMIMon начнет мониторинг вызовов WMI, выполняемых процессами в системе, включая те, которые определены на шаге 1.
  7. WMIMon отображает такие сведения, как идентификатор процесса клиента, пространство имен WMI, вызываемое операцией, имя класса WMI и учетная запись пользователя, используемая для выполнения запроса.
  8. Проанализируйте выходные данные из WMIMon, чтобы определить, какие процессы часто вызывают WMI и могут привести к высокой загрузке ЦП.

Выполнив эти действия, вы можете эффективно использовать WMIMon.exe для мониторинга активности WMI в системе и выявления проблем с производительностью или безопасностью, вызванных чрезмерным использованием WMI.

Пример:

Снимок экрана: данные, захваченные WMIMon.

Примечание.

Данные, захваченные WMIMon, можно экспортировать в текстовый файл, выполнив WMIMon.exe > Data.txt команду в командной строке. Чтобы остановить захват данных, нажмите клавиши CTRL + C.

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

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

Другие решения

После завершения работы с подозреваемым можно временно отключить службу или удалить связанное с ней приложение и проверить, устранена ли проблема с высокой загрузкой ЦП.

Ниже приведены некоторые сценарии, в которых отключение может проверить ваши наблюдения.

  • Мониторинг приложений и служб
  • System Center Configuration Manager (SCCM) (policyhost.exe или Monitoringhost.exe)
  • Powershell.exe выполнение скриптов, содержащих запросы WMI
  • Любое стороннее приложение

Сбор данных

Если вам нужна помощь со стороны службы поддержки Майкрософт, рекомендуем собрать информацию, выполнив действия, описанные в статье Сбор информации с помощью TSS для проблем с взаимодействием с пользователем.

Вы также можете собирать сведения с помощью средства WMI-Collect. Эти этапы описаны ниже.

  1. Скачайте WMI-Collect.zip и извлеките его в папку, например C:\temp.

  2. В командной строке PowerShell с повышенными привилегиями запустите сценарий WMI-Collect.ps1 из папки, в которой сохранен скрипт. Например:

    C:\temp\WMI-Collect.ps1 -Logs -Trace -Activity -Kernel -WPR -PerfMonWMIPrvSE
    

    Примечание.

    • Оставьте командную строку PowerShell открытой с сообщением "Нажмите ВВОД, чтобы остановить запись", и убедитесь, что процессWmiPrvse.exe или проблема с высокой загрузкой ЦП службы WMI воспроизведена.
    • Не включайте трассировку более одной минуты.
  3. Остановите трассировку, нажав клавишу ВВОД.

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