通过Windows PowerShell修改DNS A记录的方法及命令错误排查
如何通过Windows PowerShell修改现有DNS A记录
问题与报错
尝试用以下命令修改DNS A记录时出现参数错误:
Set-DnsServerResourceRecord -ZoneName "xxyzz.com" -Name "Testrecord" -A -IPv4Address "175.18.13.23"
报错内容:
Set-DnsServerResourceRecord : 找不到匹配参数名称“Name”的参数。
At line:1 char:56 + Set-DnsServerResourceRecord -ZoneName "xxyzz.com" -Name "Testrec ...+ ~~~~~+ CategoryInfo : InvalidArgument: (:) [Set-DnsServerResourceRecord], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Set-DnsServerResourceRecord
正确脚本示例
以下是可正常执行的PowerShell命令,用于修改DNS A记录:
### 变量配置 ### $DNSName = "Testrecord" # 要修改的记录名称 $DNSZoneName = "YourDomain.com" # 域名区域 $IPAddress = "175.18.13.23" # 新的IPv4地址 ### 变量配置结束 ### # 获取原有的DNS A记录对象 $oldobj = Get-DnsServerResourceRecord -Name $DNSName -ZoneName $DNSZoneName -RRType "A" # 复制一份记录对象用于修改 $newobj = Get-DnsServerResourceRecord -Name $DNSName -ZoneName $DNSZoneName -RRType "A" # 更新新对象的IP地址 $newobj.RecordData.IPv4Address = [System.Net.IPAddress]::Parse($IPAddress) # 提交记录修改 Set-DnsServerResourceRecord -NewInputObject $newobj -OldInputObject $oldobj -ZoneName $DNSZoneName -PassThru
关键说明
Set-DnsServerResourceRecord不支持直接通过-Name或-A参数修改记录,必须通过「获取原记录→复制修改→提交更新」的流程操作:
- 先通过
Get-DnsServerResourceRecord获取目标记录的新旧对象 - 修改新对象的IP属性后,用新旧对象作为参数提交,让DNS服务器定位并更新目标记录
内容的提问来源于stack exchange,提问作者Geek Favour
相关产品推荐
相关产品推荐

