PowerShell使用Select-Object返回值添加路由表接口索引报错如何解决
路由表添加报错修复方案
问题原因
Select-Object ifIndex默认返回的是带有ifIndex属性的PowerShell自定义对象,而非纯整数值。当该对象作为参数传递给route命令时,会被自动格式化为@{ifIndex=80}的结构,不符合route要求的纯数字接口索引参数规则,因此触发报错。
修复方案
提供两种可直接使用的修正方式:
- 方案1:通过
-ExpandProperty参数直接提取属性的纯值
修正后命令:route -p add 40.127.64.19/32 0.0.0.0 IF (Get-NetIPInterface | where-object {$_.interfaceAlias -like "Test VPN*"} | select-object -ExpandProperty ifindex) - 方案2:通过属性访问语法直接取值
修正后命令:route -p add 40.127.64.19/32 0.0.0.0 IF ((Get-NetIPInterface | where-object {$_.interfaceAlias -like "Test VPN*"}).ifindex)
前置验证
执行命令前可先单独运行索引查询语句,确认返回纯数字值:
Get-NetIPInterface | where-object {$_.interfaceAlias -like "Test VPN*"} | select-object -ExpandProperty ifindex
输出为纯数字80即可正常执行路由添加命令。
内容的提问来源于stack exchange,提问作者PRASHANT MALIK
相关产品推荐
相关产品推荐

