PowerShell 上的 tshark 作业不输出捕获文件

问题描述

当我在脚本中运行以下命令时,我希望在停止脚本后生成 packet_dump.pcap 但没有生成任何内容

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

当我运行以下行时:

Receive-Job $tsharkJobName -Force

这是我收到的错误消息(其中 $interfaceNo 是 5,这是 Wi-Fi 的 ID):

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

我在脚本末尾也有这个:

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

解决方法

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

finally {
    Stop-Process -Name "tshark"
}

解决这个问题。