如何在PowerShell中从输出表中选择特定字符串

ecfdbz9o  于 2022-11-29  发布在  Shell
关注(0)|答案(1)|浏览(135)

我正在尝试创建将IP地址解析为DNS名称,然后ping输出计算机编号的脚本:
$name = Read-Host "Please enter IP address"
$comp = Resolve-DnsName $name | select NameHost -First 1
输出为

NameHost

COMPPL01-NB0128.domain.com 网站
当我尝试格式化输出时,它会显示
@{NameHost=COMPPL01-NB0128.domain.com}
因此,我无法使用命令test connection ping结果
Test-Connection -ComputerName $comp
据我所知,test-connection cmdl正在尝试ping整个字符串NameHost= COMPPL01-NB0128.domain.com
我如何从输出中只选择计算机名并ping它呢?到目前为止,它给了我一条错误消息:
测试连接:测试与计算机“@{NameHost=COMPPL01-NB0128.domain.com}”的连接失败:在数据库查找过程中发生不可恢复的错误行:1字符:1

  • 测试连接计算机名$comp
  • 类别信息:资源不可用:(@{NameHost=COMPPL01-NB0128.domain.com}:字符串)[测试连接],Ping异常
  • 完全限定错误ID:异常错误,Microsoft.PowerShell.命令.
oxcyiej7

oxcyiej71#

有两个选项:

  1. Resolve-DnsName 8.8.8.8 | Select-Object -ExpandProperty NameHost您可以使用Expand属性单独获取主机名值。
  2. (Resolve-DnsName 8.8.8.8).NameHost使用Dot运算符获取其属性。

相关问题