通过 PID powershell 终止(关闭)可靠性监视窗口

通过 PID powershell 终止(关闭)可靠性监视窗口

我正在尝试创建一个 Windows 可靠性监视器的进程,并在截屏后将其终止。

我在获取该进程并在截屏之前自动关闭它时遇到了麻烦,因为没有可标识该窗口的进程 ID。

有没有办法通过 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

答案1

perfmon /rel启动perfmon,但最终在 Explorer 进程中打开了可靠性监视器,因此没有可以终止的进程。根据您自己的评论,可靠性监视器没有您可以使用的命令行报告,我能想到的就是

  • 枚举 shell 的窗口
  • 找到可靠性监视器
  • 退出窗口

在代码中

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

相关内容