由IP标识的适配器的网络统计信息

时间:2016-07-23 09:35:36

标签: powershell

我尝试使用PowerShell监控特定适配器的网络统计信息。监控过程本身运作良好,它基于SELECT * FROM YOURTABLE WHERE siteId=:siteId and startTime >= :startTime and endTime <= :endTime

我的问题是通过IP地址选择要监控的正确接口。上面的代码不包含这些信息所以我开始使用包含地址的其他命令,我试图找到一个关系。但目前没有成功。

没有索引,名称,描述或任何其他字符串是唯一的。我很确定必须有一些东西,但我无法找到它。 :/

提前致谢

修改

我在这里找到了另一个post,但同样存在同样的问题。它已有几年历史,但仍然没有可靠的解决方案。

编辑2

我创建了一个workarround而没有直接访问Win32类。无论如何,我仍然对我最初的问题的解决方案感兴趣。

Get-WmiObject -class Win32_PerfFormattedData_Tcpip_NetworkInterface

2 个答案:

答案 0 :(得分:0)

您需要使用过滤器。

下面:

$SourceIP = '192.168.100.1' #specify IP you want
$Name = Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where { $_.IPAddress -contains $SourceIP } | Select -ExpandProperty Description
Get-WmiObject -class Win32_PerfFormattedData_Tcpip_NetworkInterface -Filter "Name='$Name'"

答案 1 :(得分:0)

这适用于Windows 2012:

$myIp = "192.168.100.1"

$myCurrentBytes = Get-NetIPAddress $myIp | Get-NetAdapter | Get-NetAdapterStatistics | Select-Object -Property ReceivedBytes,SentBytes

$myCurrentKbytesDown = [math]::Round($myCurrentBytes.ReceivedBytes / 1024)
$myCurrentKbytesUp = [math]::Round($myCurrentBytes.SentBytes / 1024)

基本上,首先找到IP地址,然后通过管道获取适配器,然后通过管道来获取适配器统计信息。