Получение документации по необработанным и форматированным объектам данных производительности
В следующем разделе описывается, как получить документацию по онлайн-программированию для динамически создаваемого необработанного или форматированного объекта данных.
WMI содержит ряд объектов, отслеживающих производительность. Классы, производные от Win32_PerfRawData содержат необработанные или неотработанные данные о производительности и поддерживаются поставщиком счетчиков производительности. В отличие от этого, классы, производные от Win32_PerfFormattedData содержат "приготовленные" или отформатированные данные и поддерживаются поставщиком форматированных данных производительности.
Однако оба поставщика поддерживают ряд динамически создаваемых дочерних классов. Поскольку свойства добавляются во время выполнения, эти классы могут содержать незадокументированные свойства. Вы можете использовать следующий код, чтобы определить, какие свойства имеет данный динамически создаваемый класс.
Получение описания динамически создаваемого класса
Создайте экземпляр элемента и задайте для измененного квалификатора значение true.
$osClass = New-Object System.Management.ManagementClass Win32_ClassNameHere $osClass.Options.UseAmendedQualifiers = $true
Получение свойств класса .
$properties = $osClass.Properties "This class has {0} properties as follows:" -f $properties.count
Отображение свойств.
foreach ($property in $properties) { "Property Name: {0}" -f $property.Name "Description: {0}" -f $($property.Qualifiers["Description"].Value) "Type: {0}" -f $property.Type "-------" }
Следующий код извлекает описания свойств для указанного объекта Win32_PerfFormattedData .
$osClass = New-Object System.Management.ManagementClass Win32_PerfFormattedData_APPPOOLCountersProvider_APPPOOLWAS
$osClass.Options.UseAmendedQualifiers = $true
# Get the Properties in the class
$properties = $osClass.Properties
"This class has {0} properties as follows:" -f $properties.count
# display the Property name, description, type, qualifiers and instance values
foreach ($property in $properties) {
"Property Name: {0}" -f $property.Name
"Description: {0}" -f $($property.Qualifiers["Description"].Value)
"Type: {0}" -f $property.Type
"-------"
}