我尝试使用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
答案 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地址,然后通过管道获取适配器,然后通过管道来获取适配器统计信息。