按IP地址查找NIC

时间:2017-09-15 11:02:43

标签: powershell ip-address nic

我需要能够通过IP地址找到NIC,无论是全部还是部分。所以写点:

Get-NIC-By-IP 10.10.*

可以返回:

Ethernet

我知道如何在Bash中执行此操作,但无法找到PowerShell解决方案。

2 个答案:

答案 0 :(得分:2)

对于不支持Get-NetIPAddress的Windows和/或PowerShell版本,您可以结合使用类Win32_NetworkAdapterConfigurationWin32_NetworkAdapter的WMI查询获取必要信息:< / p>

$Configs = Get-WMIObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled='TRUE'" | Where-Object {$_.IPAddress -like "192.168.*"}
ForEach ($Config in $Configs) {
    Get-WMIObject -Class Win32_NetworkAdapter -Filter "Index=$($Config.Index)" | Select-Object NetConnectionID,Description
}

答案 1 :(得分:1)

通过使用以下命令,您将收到与match子句中提到的IP地址匹配的每个接口。

Get-NetIPAddress | ?{ $_.AddressFamily -eq "IPv4" -and ($_.IPAddress -match "192.")} | Select-Object InterfaceAlias

就我而言,这是:

InterfaceAlias
--------------
Ethernet 2
Ethernet

当然,如有必要,您可以修改输出。

旧OS的补充

您无法在旧的Windows浏览器上运行此脚本,因为根据TechNet上的此主题不包含cmdlet:https://social.technet.microsoft.com/Forums/office/en-US/dcc966a1-24c2-4ae4-b39d-b78df52b6aef/install-of-powershell-3-on-windows-7-seems-to-be-missing-modules?forum=winserverpowershell

  

Powershell for Windows 8和Server 2012(PS V3)中有许多cmdlet未包含在Windows 7的V3版本中。例如Get-NetIPAddress以及许多其他与网络相关的cmdlet。

然后再次将操作系统升级到支持的版本(如果可能的话),这可能是个好主意。