Mata janelas de monitoração de confiabilidade (fechadas) por PID powershell

1

Estou tentando criar um processo do monitor de confiabilidade do Windows e matá-lo depois de tirar uma captura de tela.

Estou tendo problemas para obter o processo e fechá-lo automaticamente antes de capturar a captura de tela porque não há um ID de processo que identifique essa janela.

existe alguma maneira de fechar o monitor de confiabilidade via 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
    
por kimo pryvt 13.01.2017 / 05:39

1 resposta

1

perfmon /rel inicia perfmon mas acaba abrindo o Monitor de Confiabilidade no Processo do Explorer para que não haja um Processo que você possa matar. De acordo com seus próprios comentários, o Monitor de Confiabilidade não tem relatórios de linha de comando que você possa usar, tudo o que eu consigo pensar é em

  • enumerar as janelas do shell
  • encontre o Monitor de Confiabilidade
  • Sair da janela

no código

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