Windows运维中批量导入DNS记录的PowerShell脚本编写

冬静大大_6077

冬静大大_6077

2026-03-29

431人浏览

原创

windows server dns批量导入最可靠方式是powershell配合dnsserver模块读取csv驱动操作;需预置区域、规范字段(name/recordtype/zonename/ipaddress/ttl等)、按类型调用对应cmdlet,并加入错误处理、验证与日志。

在windows server的dns服务器运维中,批量导入dns记录最可靠的方式是使用powershell配合dnsserver模块,通过结构化数据(如csv)驱动操作,避免手动逐条添加带来的效率低和出错风险。

准备CSV格式的DNS记录文件

脚本依赖外部数据源,推荐使用CSV文件统一管理记录。每行代表一条DNS记录,字段需明确类型、主机名、IP地址(或目标FQDN)、TTL等关键信息。例如:

Name,RecordType,ZoneName,IPAddress,TimeToLive
www,AAAA,example.com,2001:db8::1,3600
mail,A,example.com,192.168.1.10,1800
ftp,CNAME,example.com,server.example.com,7200

注意:ZoneName必须已存在于DNS服务器中;RecordType不区分大小写,但须为A、AAAA、CNAME、MX、TXT等标准类型;MX记录需额外包含优先级字段(Priority),建议在CSV中增加该列。

核心PowerShell脚本逻辑

脚本需先导入模块、读取CSV、按记录类型分发处理逻辑,并对每条记录执行对应Cmdlet。关键点包括:

  • 用Import-Module DnsServer -Force确保模块加载,尤其在非GUI Server Core环境下
  • 用Import-Csv读取文件,配合ForEach-Object逐行处理
  • A/AAAA记录调用Add-DnsServerResourceRecordA或Add-DnsServerResourceRecordAAAA,指定-ZoneName、-Name、-IPv4Address/-IPv6Address、-TimeToLive
  • CNAME记录用Add-DnsServerResourceRecordCName,参数为-HostNameAlias(即目标FQDN)
  • MX记录需用Add-DnsServerResourceRecordMX,传入-MailExchange和-Preference
  • 所有操作建议加-ErrorAction Stop并包裹在try/catch中,失败时输出具体行号和错误信息

安全与验证建议

生产环境切勿直接运行无验证的批量脚本:

  • 首次运行前,先用-WhatIf参数(若Cmdlet支持)或添加Write-Host模拟输出,确认将要创建的记录是否符合预期
  • 执行后立即用Get-DnsServerResourceRecord -ZoneName "example.com" | Where-Object {$_.HostName -eq "www"}抽查验证
  • 建议在脚本开头检查目标区域是否存在:if (-not (Get-DnsServerZone -Name $row.ZoneName -ErrorAction SilentlyContinue)) { Write-Error "Zone $($row.ZoneName) not found"; continue }
  • 记录操作日志:用Out-File -Append把成功/失败条目写入log文件,便于回溯

简化版可直接运行脚本示例

保存为Import-DnsRecords.ps1,以管理员身份运行:

# 导入DNS模块
Import-Module DnsServer -Force
# 读取CSV(路径按需修改)
$records = Import-Csv "C:\dns-import.csv"
# 逐行处理
$records | ForEach-Object {
  $row = $_
  try {
    switch ($row.RecordType.ToUpper()) {
      "A" { Add-DnsServerResourceRecordA -ZoneName $row.ZoneName -Name $row.Name -IPv4Address $row.IPAddress -TimeToLive $row.TimeToLive -ErrorAction Stop }
      "AAAA" { Add-DnsServerResourceRecordAAAA -ZoneName $row.ZoneName -Name $row.Name -IPv6Address $row.IPAddress -TimeToLive $row.TimeToLive -ErrorAction Stop }
      "CNAME" { Add-DnsServerResourceRecordCName -ZoneName $row.ZoneName -Name $row.Name -HostNameAlias $row.IPAddress -TimeToLive $row.TimeToLive -ErrorAction Stop }
      "MX" { Add-DnsServerResourceRecordMX -ZoneName $row.ZoneName -Name $row.Name -MailExchange $row.IPAddress -Preference $row.Priority -TimeToLive $row.TimeToLive -ErrorAction Stop }
      default { Write-Warning "Unsupported record type: $($row.RecordType)" }
    }
    Write-Host "[OK] Added $($row.RecordType) record: $($row.Name).$($row.ZoneName)" -ForegroundColor Green
  } catch {
    Write-Error "[FAIL] $($row.Name).$($row.ZoneName) : $($_.Exception.Message)"
  }

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.08.15

437

5

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

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

2023.09.08

900

5

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

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

2023.09.19

2812

5

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

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

2023.10.09

936

5

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

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

2023.10.17

849

5

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

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

2023.10.17

434

3

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

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

2023.10.18

2556

4

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

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

2023.10.20

4732

4

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

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

2023.10.20

767

5

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习