PowerShell - оператор ИЛИ - PullRequest
       5

PowerShell - оператор ИЛИ

0 голосов
/ 12 июня 2018

Я пытаюсь запустить эту команду, чтобы получить записи A и CNAME, но она просто не работает, мой синтаксис неправильный.Он только извлекает записи DNS типа CNAME.

Фактическая команда: Get-DnsServerResourceRecord -RRType "CNAME"

$results = Get-DnsServerZone | % {
$zone = $_.zonename
Get-DnsServerResourceRecord $zone -filter {(RRType -like "CNAME") -or (RRType -like "A")}   | select @{n='ZoneName';e={$zone}}, HostName, RecordType, @{n='RecordData';e={if ($_.RecordData.IPv4Address.IPAddressToString) {$_.RecordData.IPv4Address.IPAddressToString} else {$_.RecordData.NameServer.ToUpper()}}}
}

$results | Export-Csv -NoTypeInformation c:\temp\DNSRecords10.csv -Append 

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Альтернативой решения, предложенного TheIncorrigible1 , является простой вызов двух запросов:

@(
  Get-DnsServerResourceRecord $zone -RRType CNAME
  Get-DnsServerResourceRecord $zone -RRType A
) | select @{n='ZoneName';e={$zone}}, HostName, RecordType, @{n='RecordData';e={if ($_.RecordData.IPv4Address.IPAddressToString) {$_.RecordData.IPv4Address.IPAddressToString} else {$_.RecordData.NameServer.ToUpper()}}}
0 голосов
/ 12 июня 2018

Для фильтрации следует использовать Where-Object, поскольку командлет не имеет собственного параметра:

Get-DnsServerResourceRecord -ZoneName $zone |
    Where-Object { $_.RRType -in 'CNAME', 'A' } |
    Select-Object -Property @(
        @{ Name       = 'ZoneName'
           Expression = { $zone }
         }
        'HostName'
        'RecordType'
        @{ Name       = 'RecordData'
           Expression = {
                if ($_.RecordData.IPv4Address.IPAddressToString) {
                    $_.RecordData.IPv4Address.IPAddressToString
                } else {
                    $_.RecordData.NameServer.ToUpper()
                }
            }
         }
    )

В качестве сноски -like аналогично использованию -eq, если выВы не используете подстановочные знаки.


Документация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...