Mic*_*l J 2 dns powershell active-directory
我正在使用PowerShell从Active Directory DNS服务器提取信息,但无法获取所需的数据。
具体来说,我正在尝试获取属于特定子网的主机的名称10.104.128.x。
当我使用以下命令时:
Get-DnsServerResourceRecord-计算机名AD_DNS_SERVER-区域名104.10.in-addr.arpa -RRType Ptr | Where-Object {$ _。HostName -like'* .128'}`
我得到的输出看起来像这样:
主机名RecordType时间戳记TimeToLive RecordData -------- ---------- --------- ---------- ---------- 104.128 PTR 10/19/2015 3:00:0 ... 00:15:00 adl5c260a86ba79.XYZ.net。 11.128 PTR 2015年12月29日6:00:0 ... 00:15:00 adl3c970e8d7166.XYZ.net。 110.128 PTR 1/29/2012 11:00:0 ... 00:15:00 nroxitow7tst.ABC.com。 114.128 PTR 1/20/2012 7:00:00 AM 00:15:00 adl5c260a86c29e.ABC.com
我真正想要的是第一列(HostName),其中包含IP的最后两个八位位组;第五列(RecordData),其中包含IP分配给的主机的名称。
主机名是我真正想要/需要的数据。我在那里看到它!
因此,我使用该select命令缩减了管道系统中的输出。新命令如下所示:
Get-DnsServerResourceRecord-计算机名AD_DNS_SERVER-区域名104.10.in-addr.arpa -RRType Ptr | Where-Object {$ _。HostName -like'* .128'} | 选择主机名,记录数据
但是输出看起来像这样:
主机名RecordData -------- ---------- 104.128 DnsServerResourceRecordPtr 11.128 DnsServerResourceRecordPtr 110.128 DnsServerResourceRecordPtr 114.128 DnsServerResourceRecordPtr
虽然没有得到我的主机名。只是对象的类型RecordData 是而不是数据的对象包含,也许?
我还尝试将输出管道传输到CSV并获得了相同的结果。
然后,我尝试使用来查看DnsServerResourceRecord对象属性Get-Member。那告诉我该对象具有名为的属性PSComputerName。我以为可能是主机名,但尝试时却空白select。
然后,我在Google周围搜索了一下,发现了一些页面,这些页面推荐了一些使用RecordData.ipv4address将数据从DnsServerResourceRecordPtr对象中诱骗出来的方法,但是我还没有任何一个可以使用。输出仍然打印空白。
所以我的问题是:是否存在一种可靠的方法来从PTR记录中获取实际的主机名?
要从对象中选择PtrDomainName属性DnsServerResourceRecordPtr,请使用计算出的属性:
... |Select-Object HostName, @{Name='RecordData';Expression={$_.RecordData.PtrDomainName}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9525 次 |
| 最近记录: |