dnscmd 是 Windows Server 内置的 DNS 命令行管理工具,支持本地/远程操作、脚本化批量处理;需指定目标服务器(如 . 或主机名),常用操作包括区域枚举、创建、记录增删及缓存清理。
dnscmd 是 windows server 内置的命令行工具,专用于远程或本地管理 dns 服务器角色。它不依赖图形界面,适合脚本化、批量操作和自动化运维。只要 dns 服务器角色已安装(windows server 2012 及以后版本默认包含),即可直接使用,无需额外安装。
基础语法与目标指定
所有 dnscmd 命令都需明确指定操作目标——即 DNS 服务器名或 IP 地址:
- 本地服务器:用 .(英文句点)表示,例如
dnscmd . /ZoneAdd example.com /Primary - 远程服务器:用主机名或 IP,例如
dnscmd dns01.contoso.com /EnumZones
若省略服务器参数,命令将默认指向本地机器,但建议显式写出以避免混淆。
常用管理操作示例
以下为高频实用场景,均基于标准正向查找区域(Forward Lookup Zone):
-
列出所有区域:
dnscmd . /EnumZones -
创建新主区域:
dnscmd . /ZoneAdd corp.local /Primary -
添加 A 记录:
dnscmd . /RecordAdd corp.local www A 192.168.1.100 -
添加 CNAME 记录:
dnscmd . /RecordAdd corp.local mail CNAME smtp.corp.local -
删除某条记录:
dnscmd . /RecordDelete corp.local www A 192.168.1.100 /f(/f 强制确认) -
刷新整个区域:
dnscmd . /ZoneReload corp.local -
清空 DNS 服务器缓存:
dnscmd . /ClearCache
结合 Excel 批量生成命令
当需添加数百条 A 记录时,可借助 Excel 快速构造命令:
- 在 Excel 中三列分别填入:域名(如
web01)、区域名(如corp.local)、IP(如10.0.5.21) - 第四列用公式拼接命令,例如:
="dnscmd . /RecordAdd "&B2&" "&A2&" A "&C2 - 复制全部生成的命令,粘贴至 CMD 或 PowerShell(管理员权限)中执行
- 注意:确保区域已存在;若不存在,先用
/ZoneAdd创建
排错与权限要点
执行失败常见原因及应对方式:
- 提示“拒绝访问”:必须以管理员身份运行命令提示符或 PowerShell
- 提示“DNS 服务器未响应”:检查 DNS 服务是否运行(
net start | findstr DNS),或确认目标服务器网络可达 - 记录添加后不生效:AD 集成区域需等待复制,或手动执行
/ZoneReload;非 AD 区域检查%SystemRoot%\System32\Dns下对应区域文件是否更新 - 无法识别命令:确认系统为 Windows Server(非桌面版 Windows),且 DNS 服务器功能已启用


















