Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

DNS Export List Command Line or Script?

Posted on 2008-06-17
5
Medium Priority
?
1,901 Views
Last Modified: 2008-07-04
On a Server 2003 DNS server, I can go into DNS and right-click a zone and "Export List".

Is there a way to do this in a command line or in a script, such as WMI?

I tried using dnscmd /WriteBackZone ("write back zone to file") but it won't let me specify the file and I can't find any file that it supposedly wrote back to.

I don't care what the method is, as long as I can incorporate it into some kind of script.

Thanks.
0
Comment
Question by:gateguard
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 71

Accepted Solution

by:
Chris Dent earned 2000 total points
ID: 21804380

All files written by DNSCMD are placed in %SystemRoot%\System32\DNS\.

You can export the zone in it's entirety. e.g.:

dnscmd server1 /ZoneExport domain.com domain.com.dns.txt

Where domain.com.dns.txt is the file name and will be in the path above on server1.

It is all exposed in WMI as well, so, depending on what you'd like to do with it, you might find that more useful. I can provide specific examples if you need.

Chris
0
 

Author Comment

by:gateguard
ID: 21805093
Thanks, Chris.  /ZoneExport only works on 2003 servers and I want to run the script from a 2000 server so if you happen to have a WMI script to do the same thing I would be greatly grateful.
0
 
LVL 71

Expert Comment

by:Chris Dent
ID: 21916176

Sure, give me a little time, I'll have to rebuild the zone entirely from the various pieces of WMI.

Afraid I have nothing to test it against either, I'll have to bug you to do that bit for me :)

Chris
0
 
LVL 71

Expert Comment

by:Chris Dent
ID: 21933312

This will build a fairly basic version of the zone from WMI. Correct the File and Zone name values at the top.

Service Records are quite a bother to extract, do you need those?

Chris

Const ZONE_NAME = "domain.com"
Const ZONE_FILE = "domain.com.dns"
 
Function GetSOARecord
	Dim colItems
	Dim objItem
	Dim strRecord
 
	Set colItems = objWMIService.ExecQuery("SELECT * FROM MicrosoftDNS_SOAType " &_
		"WHERE DomainName='" & ZONE_NAME & "'", "WQL")
 
	For Each objItem in colItems
		strRecord = "@" & VbTab & " IN SOA " & objItem.RecordData & VbCrLf
	Next
 
	Set colItems = Nothing
 
	GetSOARecord = strRecord
End Function
 
Function GetNSRecords
	Dim colItems
	Dim objItem
	Dim strRecords
 
	Set colItems = objWMIService.ExecQuery("SELECT * FROM MicrosoftDNS_NSType " &_
		"WHERE DomainName='" & ZONE_NAME & "'", "WQL")
 
	For Each objItem in colItems
		strRecords = strRecords & "@" & VbTab & " IN NS " &_
			objItem.RecordData & VbCrLf
	Next
 
	Set colItems = Nothing
 
	GetNSRecords = strRecords
End Function
 
Function GetMXRecords
	Dim colItems
	Dim objItem
	Dim strRecords
 
	Set colItems = objWMIService.ExecQuery("SELECT * FROM MicrosoftDNS_MXType " &_
		"WHERE DomainName='" & ZONE_NAME & "'", "WQL")
 
	For Each objItem in colItems
		strRecords = strRecords & "@" & VbTab & " IN MX " &_
			objItem.RecordData & VbCrLf
	Next
 
	Set colItems = Nothing
 
	GetMXRecords = strRecords
End Function
 
Function GetCNAMERecords
	Dim colItems
	Dim objItem
	Dim strRecords, strNode
 
	Set colItems = objWMIService.ExecQuery("SELECT * FROM MicrosoftDNS_CNAMEType " &_
		"WHERE DomainName='" & ZONE_NAME & "'", "WQL")
 
	For Each objItem in colItems
		strNode = Replace(objItem.OwnerName, "." & ZONE_NAME, "", 1, -1, VbTextCompare)
		strRecords = strRecords & strNode & VbTab & " IN CNAME " &_
			objItem.RecordData & VbCrLf
	Next
 
	Set colItems = Nothing
 
	GetCNAMERecords = strRecords
End Function
 
Function GetARecords
	Dim colItems
	Dim objItem
	Dim strRecords, strNode
 
	Set colItems = objWMIService.ExecQuery("SELECT * FROM MicrosoftDNS_AType " &_
		"WHERE DomainName='" & ZONE_NAME & "'", "WQL")
 
	For Each objItem in colItems
		strNode = Replace(objItem.OwnerName, "." & ZONE_NAME, "", 1, -1, VbTextCompare)
		strRecords = strRecords & strNode & VbTab & " IN A " &_
			objItem.RecordData & VbCrLf
	Next
 
	Set colItems = Nothing
 
	GetARecords = strRecords
End Function
 
 
Dim objWMIService, objFileSystem, objFile
 
Set objWMIService = GetObject("winmgmts:\\.\root\MicrosoftDNS")
 
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.OpenTextFile(ZONE_FILE, 2, True, 0)
 
objFile.WriteLine GetSOARecord
objFile.WriteLine GetNSRecords
objFile.WriteLine GetMXRecords
objFile.WriteLine GetCNAMERecords
objFile.WriteLine GetARecords
 
Set objFile = Nothing
Set objFileSystem = Nothing
 
Set objWMIService = Nothing

Open in new window

0

Featured Post

Introducing the WatchGuard 420 Access Point

WatchGuard's newest access point includes an 802.11ac Wave 2 chipset, providing the fastest speeds for VoIP, video and music streaming, and large data file transfers. Additionally, enjoy the benefits of strong security as the 3rd radio delivers dedicated WIPS protection!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is intended as an extension of a blog on Aging and Scavenging by the MS Enterprise Networking Team. In brief, Scavenging is used as follows: Each record in a zone which has been dynamically registered with an MS DNS Server will have…
I will assume you are running a non-server version of some sort of Windows throughout this article. There are many flavors of Windows since Windows Server 2000 - 2008, XP Home & Pro, Vista Home & Pro, and Windows 7 Starter, Home, Pro, Ultimate, etc.…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question