Можно ли получить статус работоспособности системы через PowerShell? Информация, такая как загрузка процессора, используемая память, температура процессора и т.д.

1 ответ1

2

Поскольку PowerShell может создавать объекты .NET Framework, я бы порекомендовал класс PerformanceCounter для этой задачи.

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

Для получения списка категорий вы можете просто вызвать статический GetCategories() :

[System.Diagnostics.PerformanceCounterCategory]::GetCategories()

Для начала я написал небольшую демонстрацию:

$pc_prc = new-object System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total")
$pc_ram = new-object System.Diagnostics.PerformanceCounter("Memory", "Available MBytes")

while(1) {
    $time = get-date
    echo ======================
    echo $time
    echo ======================
    $pc_prc_value = $pc_prc.NextValue()
    $pc_ram_value = $pc_ram.NextValue()
    echo " + Processor Load:   $pc_prc_value %"
    echo " + Available Memory: $pc_ram_value MB"
    sleep 1
}

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

Проверьте этот SO Вопрос для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .