通过 IP 地址从 Active Directory 区域获取 DNS 记录
Getting DNS Records from an Active Directory zone by IP Addresses
我正在尝试 运行 根据 IP 地址对我的 DNS 区域进行以下查询以 return 记录,但运气不好,脚本 运行s 但只是空输出.
Get-Content ip.txt| ForEach {
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object {$_.RecordData.ipv4address -eq "$_"}
}
ip.txt文件的内容是这样的:
"10.32.84.102"
"172.31.65.18"
"172.31.65.203"
我尝试修改我的原始命令,它工作正常,但我想 运行 它针对 IP 列表..
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object {$_.RecordData.ipv4address -eq "10.32.84.102"}
我做错了什么?
您正在使用 $_
来引用 Where-Object
中的不同对象。
where-object {$_.RecordData.ipv4address -eq "$_"}
^^^^ ^^^^
$_
一次仅设置为一个对象。如果你启动另一个管道,之前的值将会消失。
您需要执行以下操作:
$IPs = Get-Content ip.txt
foreach ($IP in $IPs) {
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object { $_.RecordData.ipv4address -eq $IP }
}
您可能还需要从 ip.txt 中删除双引号。 IP 是 10.32.84.102
,而不是 "10.32.84.102"
。
我正在尝试 运行 根据 IP 地址对我的 DNS 区域进行以下查询以 return 记录,但运气不好,脚本 运行s 但只是空输出.
Get-Content ip.txt| ForEach {
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object {$_.RecordData.ipv4address -eq "$_"}
}
ip.txt文件的内容是这样的:
"10.32.84.102"
"172.31.65.18"
"172.31.65.203"
我尝试修改我的原始命令,它工作正常,但我想 运行 它针对 IP 列表..
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object {$_.RecordData.ipv4address -eq "10.32.84.102"}
我做错了什么?
您正在使用 $_
来引用 Where-Object
中的不同对象。
where-object {$_.RecordData.ipv4address -eq "$_"}
^^^^ ^^^^
$_
一次仅设置为一个对象。如果你启动另一个管道,之前的值将会消失。
您需要执行以下操作:
$IPs = Get-Content ip.txt
foreach ($IP in $IPs) {
Get-DnsServerResourceRecord -zonename "xxx.global" | where-object { $_.RecordData.ipv4address -eq $IP }
}
您可能还需要从 ip.txt 中删除双引号。 IP 是 10.32.84.102
,而不是 "10.32.84.102"
。