Назад | Перейти на главную страницу

Убить (закрыть) окна монитора надежности с помощью PID powershell

Я пытаюсь создать процесс монитора надежности Windows и убить его после того, как сделаю снимок экрана.

У меня возникли проблемы с получением процесса и его автоматическим закрытием, прежде чем я сделаю снимок экрана, потому что нет идентификатора процесса, который идентифицирует это окно.

есть ли способ закрыть монитор надежности через PowerShell?

$psi = New-object System.Diagnostics.ProcessStartInfo
$psi.CreateNoWindow = $false
$psi.UseShellExecute = $true
$psi.RedirectStandardOutput = $false
$psi.RedirectStandardError = $false
$psi.FileName = "Perfmon"
$psi.Arguments ="/rel"
$process = New-Object System.Diagnostics.Process
$process.StartInfo = $psi
[void]$process.Start()
#$output = $process.StandardOutput.ReadToEnd()
$process.id
Start-Sleep 5

perfmon /rel начинается perfmon но заканчивает тем, что открывает монитор надежности в процессе проводника, поэтому нет процесса, который можно убить. Согласно вашим собственным комментариям, у монитора надежности нет отчетов командной строки, которые вы могли бы использовать, все, что я могу придумать, это

  • перечислить окна оболочки
  • найти монитор надежности
  • Закройте окно

в коде

$shell = New-Object -ComObject Shell.Application
$window = $shell.Windows() | Where-Object { $_.LocationName -eq "Reliability Monitor" }
$window | ForEach-Object { $_.Quit() }