首页/系统/Windows 运维速查/Resolve-DnsName 结构化解析

Resolve-DnsName 结构化解析

PowerShell 的 DNS 查询命令:支持指定记录类型(A/AAAA/CNAME/MX/SRV/TXT)与查询服务器,输出为对象。

Windows 运维速查系统更新于 2026-10-13

Resolve-DnsName 是什么

这是 PowerShell 的 DNS 查询命令,支持指定记录类型与查询服务器,输出是结构化对象,便于脚本判断与后续处理。相比文本式查询工具,它更适合放进自动化流程里做批量核对。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7
语法Resolve-DnsName 域名 [-Type A|AAAA|CNAME|MX|TXT|SRV|PTR] [-Server DNS服务器] [-DnsOnly]
关键开关-DnsOnly 绕过本机 hosts 文件影响,-CacheOnly 只查缓存
输出字段Name、Type、IPAddress、NameHost、Ttl
权限要求一般无需管理员
域环境常用服务定位类记录查询

典型使用场景

  • 核对解析结果是否与预期地址一致
  • 指定内网 DNS 服务器查询私有域名
  • 排查域环境中的服务定位记录
  • 巡检时批量查询一组域名并生成报告
  • 验证解析缓存与 hosts 文件的干扰

常用示例

常用示例
# 查询地址记录
Resolve-DnsName contoso.com -Type A
# 指定内网 DNS 服务器
Resolve-DnsName intranet.contoso.com -Server 10.0.0.2
# 查询服务定位记录,域环境排障常用
Resolve-DnsName _ldap._tcp.contoso.com -Type SRV
# 绕过 hosts 文件,验证真实 DNS 结果
Resolve-DnsName intranet.contoso.com -DnsOnly
# 批量查询并整理结果
'www.example.com','mail.example.com' | ForEach-Object { Resolve-DnsName -Name $_ -Type A -ErrorAction SilentlyContinue } | Select-Object Name, Type, IPAddress

常用记录类型

类型含义典型用途
AIPv4 地址记录最常用的域名到地址映射
AAAAIPv6 地址记录双栈环境查询
CNAME别名记录确认域名指向关系
MX邮件交换记录排查邮件投递问题
SRV服务定位记录域环境定位服务节点
hosts 文件会优先影响解析结果。要验证真实 DNS 返回必须加 -DnsOnly,否则得到的可能与本机文件一致,却并不代表 DNS 的现状。
外部域名查询失败时,先确认 DNS 转发与出口可达性,而不是直接怀疑域名配置;内网环境往往压根不解析外部域名。

常见报错与含义

报错信息含义处理
DNS name does not exist记录确实不存在核对域名拼写与所在区域
query timed out服务器没有响应检查网络、53 端口与服务器状态
server refused服务器拒绝响应确认是否允许递归查询
no records found名称存在但该类型无记录换用其他记录类型再查
把查询结果里的存活时间一并记录下来很有用:它能解释为什么某些机器仍解析到旧地址,也便于判断缓存何时会自然刷新。

易错点

  • hosts 文件会优先影响结果,验证真实解析必须加 -DnsOnly
  • 未指定服务器时使用本机首选 DNS,排查结果随环境变化而不可控
  • 外部域名查询失败就认定域名有问题,忽略转发链路与出口可达性
  • 查询结果为空时未区分记录不存在与服务器不可达两种情形
  • 批量查询域名时未处理失败项,遇到一个错误就中断整个流程

数据来源与参考

  • Microsoft Learn:Resolve-DnsName

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌