使用PowerShell,我们可以轻松地在InterfaceIndex
这样的适配器上设置静态IP地址:
New-NetIPAddress -InterfaceIndex 17 -IPAddress 192.168.0.1 -PrefixLength 24 -DefaultGateway 192.168.0.254
我们希望能够在任何物理有线适配器上设置静态IP地址。我们可以这样获得物理适配器:
Get-NetAdapter –Physical
这将返回如下内容:
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Ethernet Intel(R) Ethernet Connection (5) 17 Disconnected 00-11-22-33-44-55 1 Gbps Wi-Fi Intel(R) Wireless LAN 7 Disconnected 00-11-22-33-44-56 72 Mbps
编辑:在reading some more中,自Windows 8以来,似乎已将有线适配器 配置为静态命名为“以太网”。由于我们仅针对Windows 10,我们真的可以添加查询以仅获取名称为'Ethernet%
的适配器吗?
答案 0 :(得分:1)
您尝试过类似
Get-NetAdapter -Physical | Where-Object { $_.Name -match "^Ethernet" }
答案 1 :(得分:1)
我会使用
Get-NetAdapter -Physical | Where-Object { $_.PhysicalMediaType -eq "802.3" }
这似乎是仅物理以太网适配器的良好指示,它将获得在Description / DisplayName中没有“以太网”的适配器。 WLAN设备将具有本机802.11(或其他表示无线适配器的指示)。
执行Get-NetAdapter | Export-CSV C:\Path\To\CSV
以获取系统上所有适配器的所有属性。您可能会发现更多属性可用于过滤。
关于在所有以太网适配器上设置IP地址,这应该可以正常工作(尽管我警告说,在同时使用多个以太网适配器的不太可能发生的事件中,在多个适配器上设置相同的IP地址可能会引起麻烦):< / p>
$ethernetAdapters = @(Get-NetAdapter -Physical | Where-Object {$_.PhysicalMediaType -eq "802.3"})
$staticIPAddress = "0.0.0.0"
$gateway = "0.0.0.0"
$prefixLength = "24"
foreach ($adapter in $ethernetAdapters) {
New-NetIPAddress -IPAddress $staticIPAddress -AddressFamily IPV4 -DefaultGateway $gateway -PrefixLength $prefixLength -InterfaceIndex $adapter.InterfaceIndex
}
请记住将变量替换为您的环境信息,尤其是您将用于适配器的IP地址。
您可能希望找到一种方法,可以依次为每个$adapter
(*。200,*。201等)生成一个新的IP地址,其中一部分可以用ip地址,mac地址和序列号用于保存记录。