The DNSCMD command is a command-line tool used for managing Windows DNS Servers. It allows administrators to query DNS servers, create and delete zones and records, and manage server settings. This tool is essential for network administration and is used primarily in environments where batch processing of DNS operations is needed.


The general syntax for the DNSCMD command is as follows:

dnscmd [ServerName] [<Command> [CommandParameters]]
  • ServerName: The DNS server host name or IP address. If omitted, the local server is used.
  • Command: Specifies the operation to perform, such as adding a record or deleting a zone.
  • CommandParameters: Additional arguments or flags that depend on the specific command used.


  • /Info: Displays server configuration information.

  • /EnumZones: Lists all zones on the server.

  • /ZoneAdd <ZoneName> [/DsPrimary | /Primary | /Secondary IPAddresses]: Adds a new DNS zone.

  • /RecordAdd <ZoneName> <NodeName> <RRType> <RRData>: Adds a record to a DNS zone.

  • /ZoneDelete <ZoneName> [/DsDel]: Deletes a zone.

  • /RecordDelete <ZoneName> <NodeName> <RRType> [<RRData>] [/f]: Deletes a record from a zone.

    • /DsDel: Deletes the zone from Active Directory.
    • /f: Executes the command without prompting for confirmation.


  1. Listing all DNS zones on the local server:
    dnscmd /EnumZones
  2. Adding a primary zone:
    dnscmd /ZoneAdd example.com /Primary
  3. Adding an A record:
    dnscmd /RecordAdd example.com www A
  4. Deleting a DNS zone:
    dnscmd /ZoneDelete example.com /f

Common Issues

  • Permissions: Ensure the user has the necessary administrative rights to make changes to DNS configurations.
  • Syntax errors: Double-check command syntax, as small mistakes can lead to operation failures.
  • Connectivity issues: Problems with server connectivity can affect the execution of DNSCMD operations. Ensure the target server is reachable.


DNSCMD can be combined with scripting languages like PowerShell or batch scripts to automate DNS management tasks. Here’s an example batch script that adds multiple A records:

@echo off
set SERVER=your_dns_server
set ZONE=example.com

dnscmd %SERVER% /RecordAdd %ZONE% host1 A
dnscmd %SERVER% /RecordAdd %ZONE% host2 A


This script can be scheduled to run at regular intervals or triggered by specific events.

  • PowerShell Cmdlets for DNS: PowerShell provides a more modern and flexible suite of Cmdlets tailored for DNS management, such as Add-DnsServerResourceRecordA for adding A records.
  • IPCONFIG: Useful for displaying all current TCP/IP network configuration values and refreshing DHCP and DNS settings.

For more detailed information, visit the official Windows DNS Server documentation.