DNS Exporter
Export DNS with Timestamps so that I can determine what will be deleted when enabling scavenging.
$DNSlist = import-csv -Delimiter `t C:\DNS_Zone_Export.txt $Date = $(Get-Date).AddDays(-14) $DeletableDNSRecords = $DNSlist | where {$_."TimeStamp (Friendly)" -lt $date} | select OwnerName, "TimeStamp (Friendly)" foreach ($machine in $DeletableDNSRecords) { $pingable=$(Test-Connection -Quiet -ComputerName $machine.OwnerName) write-host $machine.OwnerName "," $pingable $machine | Add-Member -membertype noteproperty -name Pingable -Value $pingable } $DeletableDNSRecords | where {$_.pingable -eq "True"} | Select OwnerName
LDAP Search for dns timestamp
*note the timestamp for deletion is not stored in AD at least I can't find an attribute that corresponds to that value, was able to get the info with a powershell query below.
ldapsearch -x -LLL -P 3 -h DC01.blah.corp -D "kcurran-admin@blah.corp" -W -b "DC=ForestDnsZones,DC=blah,DC=root" -s sub "(&(objectClass=dnsNode)(name=servername))" name cn whenchanged modifyTimeStamp
http://www.winserverkb.com/Uwe/Forum.aspx/windows-server-dns/4485/DNS-AD-integrated
ADSIEDIT.msc
Right click on the root
select connect to
set Name ForestDNSZones
set Connection Point DC=ForestDnsZones,DC=blah,DC=root
Get-WmiObject -namespace "root\MicrosoftDNS" -Credential $cred -ComputerName DNSServer -Class "MicrosoftDNS_AType" -filter "ContainerName='blahnet.corp' AND OwnerName='server.blahnet.corp'"
http://www.indented.co.uk/index.php/2008/10/10/microsoft-dns-stale-records/
$cred = Get-Credential $DNSServer='dnsservername' #$QueryRecord='server.blahnet.corp' Get-WmiObject -namespace "root\MicrosoftDNS" -Credential $cred ` -ComputerName $DNSServer -Class "MicrosoftDNS_AType" ` -filter "ContainerName='blahnet.corp' AND OwnerName='server.blahnet.corp'" | Select-Object OwnerName, @{n="TimeStamp";e={((Get-Date("01/01/1601")).AddHours($_.TimeStamp)).ToLocalTime()}}
dnscmd dnsservername /enumrecords blahnet.corp servername /Type A /additional
Returned records:
@ [Aging"3598301] 3600 A 192.168.1.222
Command completed successfully
Dump a list of all dns records to a text file.
dnscmd dnsservername /enumrecords blahnet.corp @ /Type A /additional > foo.csv