title: How to Get The Real RecordData from DnsServerResourceRecord Using Powershell?
body: <p>I'm using PowerShell to extract information from an Active Directory DNS server and I'm having trouble getting to the data I want.</p>
  
  <p>Specifically, I'm trying to get the names of hosts that belong to a particular subnet, <code>10.104.128.x</code>.</p>
  
  <p>When I use the following commands:</p>
  
  <pre>Get-DnsServerResourceRecord -ComputerName AD_DNS_SERVER -ZoneName 104.10.in-addr.arpa -RRType Ptr | Where-Object {$_.HostName -like '*.128'}`</pre>
  
  <p>I get output that looks like this:</p>
  
  <pre>
  HostName                  RecordType Timestamp            TimeToLive      RecordData                                        
  --------                  ---------- ---------            ----------      ----------                                        
  104.128                   PTR        10/19/2015 3:00:0... 00:15:00        adl5c260a86ba79.XYZ.net.                          
  11.128                    PTR        12/29/2015 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
  </pre>
  
  <p>What I really want are the first column, (<code>HostName</code>), which has the last two octets of the IP; and the fifth column, (<code>RecordData</code>), which has the name of the host the IP is assigned to.  </p>
  
  <p>The hostname is the data I really want/need.  And I see it right there!</p>
  
  <p>So I used the <code>select</code> command to pare down the output in the pipe train.  New command looks like this:</p>
  
  <pre>Get-DnsServerResourceRecord -ComputerName AD_DNS_SERVER  -ZoneName 104.10.in-addr.arpa -RRType Ptr | Where-Object {$_.HostName -like '*.128'} | select HostName, RecordData</pre>
  
  <p>But the output looks like this:</p>
  
  <pre>
  HostName RecordData                
  -------- ----------               
  104.128  DnsServerResourceRecordPtr
  11.128   DnsServerResourceRecordPtr
  110.128  DnsServerResourceRecordPtr
  114.128  DnsServerResourceRecordPtr
  </pre>
  
  <p>Dosen't get me the hostname though. Just the type of object the <code>RecordData</code> <em>is</em> but not the data that the object contains, perhaps?</p>
  
  <p>I also tried piping the output to CSV and got the same result.</p>
  
  <p>Then I tried looking at the <code>DnsServerResourceRecord</code> object properties with <code>Get-Member</code>.  That showed me the object had a property called <code>PSComputerName</code>.  I thought maybe that would have the name of the host but that came up blank when I tried to <code>select</code> it.</p>
  
  <p>I then Googled around a bit and found a few pages that recommended a few ways to use RecordData.ipv4address to coax the data out of the <code>DnsServerResourceRecordPtr</code> object but I haven't gotten any of them to work yet.  Output still prints blanks.</p>
  
  <p>So my question is: does a reliable method exist for getting the actual hostname from a PTR record?</p>