Get-DnsServerResourceRecord -ComputerName server -ZoneName zone.com
我想运行此命令并获取HostName,RecordType,ZoneName和所有RecordData集。
到目前为止,我有类似的事情:
Get-DnsServerResourceRecord zone.com -ComputerName server |
select hostname, recordType, name,
@{Name='ARecordData';Expression={$_.RecordData.IPv4Address}},
@{Name='CNameRecordData';Expression={$_.RecordData.HostnameAlias}}
我的问题有两个方面。
答案 0 :(得分:0)
您可以将区域名称添加为calculated property,就像处理记录数据一样。
foreach ($zone in $zone_list) {
Get-DnsServerResourceRecord -ZoneName $zone -ComputerName server |
Select-Object hostname, @{n='ZoneName';e={$zone}}, recordType, ...
}
不要创建单个属性,而是使用switch
语句根据单个属性中的记录类型来选择相关数据。
... | Select-Object hostname ..., @{n='Data';e={
$rr = $_
switch ($rr.RecordType) {
'A' {$rr.RecordData.IPv4Address}
'CNAME' {$rr.RecordData.HostnameAlias}
...
}
}}