powershell - dnsserverresourcerecord - 所有扩展属性和区域
问题描述
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}}
我的问题是两个方面。
- 我需要知道如何将 ZoneName 放入记录集中,因此如果我想传递多个区域,我可以将这些数据分开。
- 上面的示例将为每个 RecordData 创建不同的列。由于 DNS 记录将只有其中一个值,有没有办法通过 PowerShell 将它们组合成一列?
解决方案
您可以像处理记录数据一样将区域名称添加为计算属性。
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} ... } }}
推荐阅读
- javascript - slickGoTo 行导致 Uncaught TypeError
- java - jhipster - 从 undertow 切换到 tomcat
- api - 使用 Vue.js、chart.js 和 chartjs-plugin-datalabels 从天气 API 访问数据
- apache-spark - 如何减少 Livy 的周转时间
- c# - 使用无权访问私钥的客户端证书通过 HttpClient 进行 HTTPS 调用
- reactjs - 几个错误';' 安装 ESLint airbnb 后在 package.json 中预期
- laravel - 服务“应用程序”构建失败:未经授权:在对 laravel 应用程序进行 docker 化时需要身份验证
- visual-studio - 使用 ML64 编译和创建 exe 文件
- c++ - C ++将解析器的结果放入数组
- r - 根据落入范围 columnA:columnB 的值在数据框中查找相应的行