Назад | Перейти на главную страницу

Get-WmiObject Win32_PerfFormattedData_Tcpip_NetworkInterface приводит к ошибке «Недопустимый класс»

Один из моих плагинов Nagios для мониторинга сетевой нагрузки вызывает у меня проблемы на одном сервере Windows 2008 R2 (из 600). Вы можете скачать плагин здесь: https://github.com/willemdh/check_ms_win_network_load

Проблема возникает при попытке

Get-WmiObject Win32_PerfFormattedData_Tcpip_NetworkInterface

Что приводит к:

Get-WmiObject : Invalid class "Win32_PerfFormattedData_Tcpip_NetworkInterface"
At line:1 char:1
+ Get-WmiObject Win32_PerfFormattedData_Tcpip_NetworkInterface
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidType: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Проблема началась, когда сетевая карта была заменена в VMware с «E1000» на «VMXNET 3». Поскольку я подозревал проблемы с WMI, я уже пробовал следующие шаги, чтобы попытаться решить их:

winmgmt /salvagerepository %windir%\System32\wbem

winmgmt /resetrepository %windir%\System32\wbem

Rename the repository folder located at %windir%\System32\wbem\repository to repository.old

winmgmt /resyncperf

wmiadap /f

wmiadap /r

Между каждым из вышеперечисленных шагов я останавливал WMI и перезагружал сервер. Ничего не помогло. Что еще я могу сделать, чтобы снова запросить класс Win32_PerfFormattedData_Tcpip_NetworkInterface?

AFAIK Win32_PerfFormattedData_Tcpip_NetworkInterface класс зависит от PerfLib. Вы проверяли, как выставлялись ваши счетчики производительности для этого сервера? Попробуйте заново создать счетчик производительности.

Попробуй это:

(get-counter -ListSet 'network adapter').Counter

или это для win7 и ранее:

(get-counter  -ListSet 'network interface').Counter

Запустите perfmon и найдите счетчики сетевого адаптера.