Windows 怎么使用 PowerShell 批量检查内网主机的 DNS 解析正确性

落芳君_6527

落芳君_6527

2026-09-10

183人浏览

原创

答案是使用resolve-dnsname cmdlet批量比对内网主机解析ip与预期值是否一致。脚本导入csv列表,对每个主机名发起a记录dns查询,仅取首个ipv4地址与预期ip比对,输出含匹配状态的表格,并支持多dns服务器一致性验证及定时巡检。

用 powershell 批量检查内网主机 dns 解析是否正确,核心是:对每个目标主机名发起标准 dns 查询,比对返回的 ip 是否符合预期,并统一记录结果。不依赖第三方工具,全程使用 windows 内置的 resolve-dnsname cmdlet 即可完成。

准备待检主机列表与预期IP

先明确你要验证什么——不是“能不能解析”,而是“是否解析到正确的地址”。比如:

  • 内网服务域名:dc01.corp.local 应始终返回 10.1.1.10
  • 文件服务器:fs01.corp.local 应返回 10.1.1.20 或属于 10.1.1.0/24 网段
  • 跳过 IPv6 或仅关注 A 记录,避免干扰判断

把它们整理成 CSV 或数组格式,例如保存为 hosts-to-check.csv:

Hostname,ExpectedIP
dc01.corp.local,10.1.1.10
fs01.corp.local,10.1.1.20
webapp.corp.local,10.1.1.50

执行批量解析并比对结果

以管理员身份运行 PowerShell,粘贴以下脚本(可直接执行,无需额外模块):

$list = Import-Csv "C:\path\to\hosts-to-check.csv"
$results = foreach ($item in $list) {
    $name = $item.Hostname
    $expect = $item.ExpectedIP
    $res = Resolve-DnsName $name -Type A -QuickTimeout -DnsOnly -ErrorAction SilentlyContinue
    if (-not $res) {
        [PSCustomObject]@{ Hostname = $name; Status = "解析失败"; IP = ""; Match = "否" }
        continue
    }
    $actual = $res.IPAddress | Select-Object -First 1
    $match = if ($actual -eq $expect) { "是" } else { "否" }
    [PSCustomObject]@{ Hostname = $name; Status = "成功"; IP = $actual; Match = $match }
}
$results | Format-Table -AutoSize

说明:

windows-healing-gateway
windows-healing-gateway

通过任务计划程序自动监控并自修复 Windows 上的 OpenClaw Gateway,具备 AI 诊断和 Telegram 报警功能。

下载
  • -DnsOnly 跳过本地 hosts 文件,确保测的是真实 DNS 行为
  • -QuickTimeout 防止卡住,默认超时约 1 秒,适合内网快速响应场景
  • 只取首个 A 记录(Select-Object -First 1),避免多 IP 情况下比对复杂化
  • 输出表格含“Match=否”的条目,就是需要人工介入排查的对象

扩展:自动检测内网 DNS 服务器是否一致

如果想确认所有主机是否被同一套内网 DNS 统一解析(防 DNS 劫持或配置漂移),可指定多个 DNS 服务器并发查询:

$servers = "10.1.1.5", "10.1.1.6", "192.168.10.1"
foreach ($host in $list.Hostname) {
    $ips = @()
    foreach ($srv in $servers) {
        $r = Resolve-DnsName $host -Server $srv -Type A -QuickTimeout -ErrorAction SilentlyContinue
        if ($r) { $ips += $r.IPAddress }
    }
    $uniqueIPs = $ips | Sort-Object -Unique
    Write-Host "$host → $($uniqueIPs.Count) 个不同IP: $($uniqueIPs -join ', ')"
}

若某主机在不同 DNS 服务器上返回不同 IP,说明存在解析不一致问题,常见于区域未同步、缓存未刷新或策略路由干扰。

日常巡检建议

把上述脚本保存为 Check-IntranetDNS.ps1,再用 Windows 定时任务每 15 分钟自动运行一次:

  • 结果导出为 CSV:$results | Export-Csv "C:\logs\dns-check-$(Get-Date -f yyyyMMdd-HHmm).csv" -NoTypeInformation
  • 异常时发邮件或写入事件日志(用 Write-EventLog)
  • 首次运行前,手动执行 Clear-DnsClientCache 清掉本地缓存,确保结果反映当前 DNS 状态

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2672

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

896

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

789

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2416

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4452

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HBuilderX Windows 安装手册
HBuilderX Windows 安装手册

共0课时 | 0人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习

好课诞生记
好课诞生记

共20课时 | 7.1万人学习