Доброго времени суток.
Набросал такой скрипт для ограничения особо прожорливого процесса:
# Задайте пороговое значение в процентах
$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