首页 > 解决方案 > 收到错误“方法调用失败,因为 [System.Net.IPAddress[]] 不包含名为“Where”的方法”

问题描述

我的从主机名获取 ipaddress 的脚本在 Windows 7 计算机上运行时出现此错误。任何解决方法都可能。我假设它是由于没有更新 powershell 造成的,但我无法更新所有计算机的 powershell。我的代码看起来像

if ($tech_name -eq "brian" -or $tech_name -eq "6" ){    
    $wshell.SendKeys([System.Net.Dns]::GetHostAddresses("XXXXXX").where({$_.AddressFamily -eq 'InterNetwork'}).IPAddressToString)
    $wshell.SendKeys("~")          
}

标签: powershell

解决方案


在早期版本的 PowerShell 中,您可以改用 where-object cmdlet,但是您需要更多的括号来获取该属性。

$wshell.SendKeys(([System.Net.Dns]::GetHostAddresses("XXXXXX") | where-object {$_.AddressFamily -eq 'InterNetwork'}).IPAddressToString)
$wshell.SendKeys("~")

推荐阅读