如何用PowerShell脚本检测指定网卡是否已配置对应IPv6地址
PowerShell判断网卡是否已配置指定IPv6地址的实现方案
直接可用的判断条件
你可以直接在if的括号内填入以下代码:
-not (Get-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv6 | Where-Object { $_.IPAddress -eq $myAddress })
逻辑说明
Get-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv6会查询指定别名网卡上配置的所有IPv6地址- 后续通过
Where-Object过滤出和目标地址$myAddress完全匹配的地址条目 - 如果没有匹配到任何条目,说明该地址未配置,执行
New-NetIPAddress新增地址;如果匹配到条目,说明地址已存在,执行Set-NetIPAddress修改已有配置
更优化的写法
为了避免重复执行地址查询、同时抑制查询不到地址时的报错信息,你可以调整代码结构如下:
# 提前查询是否存在对应地址,查询不到时忽略错误提示 $targetAddressExists = Get-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv6 -IPAddress $myAddress -ErrorAction SilentlyContinue if (-not $targetAddressExists) { New-NetIPAddress –InterfaceAlias $myAdapter –IPAddress $myAddress } else { Set-NetIPAddress –InterfaceAlias $myAdapter –IPAddress $myAddress }
内容的提问来源于stack exchange,提问作者Aleph0
相关产品推荐
相关产品推荐

