Как я могу получить записи DNS из списка? - PullRequest
0 голосов
/ 09 мая 2019

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

...