Finding Resource Records in a Zone
With the marriage of DNS and
WMI,
sending DNS queries has never been so easy. By using WQL, you can
write complex query routines that would not have been possible
previously. To list all of the resource records on a server, you
simply need to execute the WQL query select * from
MicrosoftDNS_ResourceRecord against
the target server. The following example shows how to run the query
against the local name server:
set objDNS = GetObject("winMgmts:root\MicrosoftDNS")
set objRR = objDNS.ExecQuery("Select * from MicrosoftDNS_ResourceRecord")
for Each objInst in objRR
WScript.Echo objInst.TextRepresentation
nextThe
TextRepresentation
method is available to all resource record types since
it’s defined in
MicrosoftDNS_ResourceRecord. It returns a text
string representing the resource record, such as the following:
www.movie.edu. IN A 192.10.4.5
If you want to limit the query to only a specific zone, change the
WQL query to include criteria for ContainerName,
such as the following:
Select * from MicrosoftDNS_ResourceRecord
Where ContainerName = 'ZoneName'Since Active Directory stores all of the global catalog servers for a
forest and domain controllers for a domain in DNS, you can write
scripts to access this information and integrate it into your
applications. The following example does exactly this by selecting
all SRV records with a particular OwnerName. To
find all global catalog servers in a forest, you can look up
_ldap._tcp.gc._msdcs.ForestRootDNSName ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access