Можно ли получить статус работоспособности системы через PowerShell? Информация, такая как загрузка процессора, используемая память, температура процессора и т.д.
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 Вопрос для получения дополнительной информации.