Задать вопрос
@Enlighted_one

Можно ли передать переменную в Get-Counter в powershell?

Доброго времени суток.
Набросал такой скрипт для ограничения особо прожорливого процесса:

# Задайте пороговое значение в процентах
$threshold = 1

# Задайте адрес лог файла
$logFile = "C:\windows\rphostkiller.log"

# Получите список процессов
$processes = Get-Process -Name rphost

foreach ($process in $processes) {
    # Получаем нагрузку которую даёт процесс на процессор 
    $cpuUsage = (Get-Counter "\процесс($process.name)\% загруженности процессора").CounterSamples.CookedValue

    if ($cpuUsage -ge $threshold) {
        # Завершите процесс
        # Stop-Process -Id $process.Id -Force            
            
        $message = "Завершен процесс: $($process.Name) По причине превышения потребления ресурса процессора: $cpuUsage"
        Add-Content -Path $logFile -Value $message
        
    }
}


1) Как в строку: (Get-Counter "\процесс($process)\% загруженности процессора").CounterSamples.CookedValue подставить переменную, если вписать название процесса то нормально работает. Если поставить переменную то выдаёт ошибку.
пробовал вариант: $process.name то же ошибка.

Get-Counter : Недопустимый путь к счетчику производительности \процесс(System.Diagnostics.Process (rphost).name)\% загруженности про
цессора.
C:\Windows\rphostkiller.ps1:12 знак:18
+ ... cpuUsage = (Get-Counter "\процесс($process.name)\% загруженности проц ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidResult: (:) [Get-Counter], Exception
    + FullyQualifiedErrorId : CounterPathIsInvalid,Microsoft.PowerShell.Commands.GetCounterCommand
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Enlighted_one Автор вопроса
Нашёл решение:
(Get-Counter "\процесс($($process.Name))\% загруженности процессора").CounterSamples.CookedValue
я пока не понял почему именно так, но вроде работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы