首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell错误- GetHostByAddress

Powershell错误- GetHostByAddress
EN

Stack Overflow用户
提问于 2014-04-16 15:47:55
回答 2查看 9.4K关注 0票数 0

这里遇到了一个问题-运行Powershell 1.0

代码(假设传入的ip地址是有效的):

代码语言:javascript
复制
$ips = @(Import-CSV $attachmentLocation)
foreach ($ip in $ips){
    $ipAddress = $ip.IPAddress
$length = $ipaddress.length
write-host "Length is: ($length)"
    if(Test-Connection -ComputerName $ipAddress -Count 1 -ea silentlycontinue) {
        write-host $ipAddress
        $hostData = ([Net.Dns]::GetHostByAddress($ipAddress)).HostName
    }
}

输出:

代码语言:javascript
复制
Length is: (11)
10.xx.xx.xx
Exception calling "GetHostByAddress" with "1" argument(s): "The requested name is valid, but no data of the requested type was found"
At FileName:13 char:43
+         $hostData = ([Net.Dns]::GetHostByAddress <<<< ($ipAddress)).HostName
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

如果我运行以下代码,它可以正常工作--似乎是数据类型问题(im传入字符串值):

代码语言:javascript
复制
$hostData = ([Net.Dns]::GetHostByAddress("10.xx.xx.xx")).HostName

工作守则:

代码语言:javascript
复制
$ipAddress = "10.xx.xx.xx"
$hostData = ([Net.Dns]::GetHostByAddress($ipAddress)).HostName

回答:问题是与ActiveDirectory域DNS解析有关,而不是命令,而一些IP地址是可点击的--它们在运行脚本的机器上没有正确解析。这导致错误“未找到所请求的类型的数据”,指的是它无法将IP解析为DNS名称。

EN

回答 2

Stack Overflow用户

发布于 2014-04-16 16:08:33

我有两个想法你可以试试:

  1. GetHostByAddress()支持stringipaddress。因此,在运行函数之前,请尝试转换为ipaddress-type。 if(Test-Connection -ComputerName $ipAddress -Count 1 -ea,沉默地继续){写主机$ipAddress $hostData =-ea}
  2. 如果您使用的是PS1.0,那么您的首要任务应该是将机器升级到至少PowerShell 2.0。在PS1.0中没有什么是好的。
票数 2
EN

Stack Overflow用户

发布于 2016-08-24 00:48:06

运行PS3时,在我们的域中遍历子网时会看到错误。尤其是偏远的地方。我正在检查我们域上的5个不同的C类子网,以确保没有我们在AD中没有的设备。也有可能有些设备不是有主机名的PC:路由器、交换机、防火墙、扫描仪等等。当我的代码到达我的本地办公室时,没有错误。

我不使用文件,而是通过脚本中的代码生成子网。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23114234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档