Я пытаюсь получить список записей 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 различных зон, и я не хочу менятьскрипт для каждой зоны и разные файлы для каждой зоны.