задание tshark в PowerShell не выводит файл захвата

#powershell #shell #wireshark #tshark

Вопрос:

Когда я запускаю следующую команду в своем сценарии, я ожидаю, что packet_dump.pcap будет создан после того, как я остановлю сценарий, но ничего не создается.

 Start-Job -Name $tsharkJobName -ScriptBlock { amp; $tsharkPath --interface $interfaceNo -w "packet_dump.pcap" } | Out-Null
 

Когда я запускаю строку ниже:

 Receive-Job $tsharkJobName -Force
 

Это сообщение об ошибке, которое я получаю (где $interfaceNo равно 5, что является идентификатором для Wi-Fi):

 Capturing on 'Wi-Fi'
      CategoryInfo          : NotSpecified: (Capturing on 'Wi-Fi':String) [], RemoteException
      FullyQualifiedErrorId : NativeCommandError
      PSComputerName        : localhost
 

У меня это тоже есть в конце сценария:

 finally {
    Stop-Job $tsharkJobName
    Remove-Job $tsharkJobName -Force
}
 

Ответ №1:

 $args = "--interface "   $interfaceNo   " -w packet_dump.pcap"    
Start-Process $tsharkPath -ArgumentList $args -NoNewWindow
 

и

 finally {
    Stop-Process -Name "tshark"
}
 

Решает эту проблему.