我正在尝试获取某些子网中的DNS记录列表。我可以使该命令适用于1个或多个子网(通过使用-like
和-or
),但是我将有10个以上的子网来获取记录。
我尝试添加一个变量,并尝试与foreach
一起使用,但是它只会返回错误unexpected token in statement
。
我觉得我在此foreach
语句的位置可能有错误,但是我不确定。
这比我的嵌套略高一些。
这就是我能够上班的地方:
Get-DnsServerResourceRecord -ZoneName zone.local -RRType A |
foreach ($subnet in $subnets) {
where-object {$_.Recorddata.ipv4address -like $subnet}} |
where-object {$_.Recorddata.ipv4address -like "10.1.*.*" -or $_.Recorddata.ipv4address -like "192.168.*.*"} |
Select-Object HostName, RecordType ,@{Name='IPv4Address';Expression={$_.RecordData.IPv4Address}
}
我尝试过的事情:
$subnets = get-content .\zonedata.txt
get-dnsserverresourcerecord -zonename "zone.local" -RRType A |
foreach ($subnet in $subnets) {
where-object {$_.REcorddata.ipv4address -like $subnet}} |
Select-Object HostName, RecordType ,@{Name='IPv4Address';Expression={$_.RecordData.IPv4Address}
}
在我可以使用的代码上,它返回该区域内的所有记录,这很棒,但是就像我说的那样,我将需要10个以上不同区域的记录,而我不想必须更改每个区域的脚本,并且每个区域都有不同的文件。