解析Get-Counter数据以获取值

时间:2012-08-29 17:22:20

标签: parsing powershell powershell-v2.0

我想得到计算机在一段时间内发送/接收的总字节数。

Powershell有一个方便的cmdlet,可以让我访问该信息(Qualcomm Atheros AR9285无线网络适配器是我的界面名称):

Get-Counter -Counter "\Network Interface(Qualcomm Atheros AR9285 Wireless Network Adapter)\Bytes received/sec" -Continuous

它获得的数据很好,但它是这样的:

enter image description here

关闭我可以按照我想要的方式使用Get-Counter -Counter "\Network Interface(Qualcomm Atheros AR9285 Wireless Network Adapter)\Bytes received/sec" -Continuous | Format-Table -Property Readings,但在我想要的值前面仍然有一个很长的路径名。

此外,如果我尝试将输出设置为某个变量,则不会完成任务(变量保持为空)。

如何以合适的格式获取此数据?

注意:目标是保持此信息的运行记录,然后在达到阈值时执行某些操作。我能做到这一点,如果我可以让上述工作,但如果有更好的方法,我很乐意使用它。

1 个答案:

答案 0 :(得分:5)

管道到Foreach-Object并从CounterSamples属性中获取值。 CounterSamples是一个数组,值在第一项中:

Get-Counter -Counter "\Network Interface(Qualcomm Atheros AR9285 Wireless Network Adapter)\Bytes received/sec" -Continuous |
Foreach-Object {$_.CounterSamples[0].CookedValue}