DNS添加/修改/查询/删除A记录
如果DC部署在不同站点,在其中一台DNS新建A记录后,快速复制到其他站点DNS方式如下:
1.先对AD进行站点间复制
2.在目标DC上运行命令:dnscmd /zoneupdatefromds ZoneName,比如 dnscmd /zoneupdatefromds abctest.test3.com,A记录会立即刷新出来
#查询DNS可用类
Get-WmiObject -Namespace root\MicrosoftDNS -List
#查询所有资源记录
$mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" $mydns = [WMIClass]"\\$Server\ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
#查询已有区域
gwmi -Namespace root\microsoftdns -Class MicrosoftDNS_zone |select ContainerName
#查询 ddv.com区域下的所有A记录
Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.ContainerName -eq "ddv.com"} |Select TextRepresentation
#查询单条A记录
#查询 bb.ddv.com 的A记录 $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class MicrosoftDNS_ResourceRecord -filter "containername='ddv.com' AND OwnerName='bb.ddv.com'"
#查询 bb.ddv.com 的A记录 $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"}
#修改A记录
#修改A记录 bb.ddv.com 的IP指向为172.0.0.23
$ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"}
$ARecord.Modify($ARecord.TTL,"127.0.0.223")
#删除A记录
#删除A记录 bb.ddv.com $ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_atype | ? {$_.OwnerName -eq "bb.ddv.com"} $ARecord.delete()
#添加A记录
#添加单条A记录 bb.ddv.com IN A 127.0.0.3 $dnsServerName="" $containerName="ddv.com" $dns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" $dns.CreateInstanceFromTextRepresentation($dnsServerName, $containerName, "bb.ddv.com IN A 127.0.0.3")
#批量添加A记录 $dnsServerName="" $containerName="ddv.com" $dns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" Get-Content D:\dnsListFile.txt | Foreach-Object {$dns.CreateInstanceFromTextRepresentation($dnsServerName, $containerName, $_)}
dnsListFile.txt内容如下:
aaa.ddv.com IN A 127.0.0.1
bb.ddv.com IN A 127.0.0.2
#查询转发服务器
gwmi -Namespace "root\MicrosoftDNS" -class "MicrosoftDNS_Server" | Select-Object -ExpandProperty Forwarders
=====================================================================
#修改DNS A记录 $ZoneName = "yxp.com" $HostName = "ldaptest" $As = Get-DnsServerResourceRecord -ZoneName $ZoneName | ? {$_.HostName -eq $HostName} |sort RecordData $NewRecord = $As.Clone() $NewRecord.RecordData.IPv4Address ="10.10.3.3" Set-DnsServerResourceRecord -ZoneName $ZoneName -OldInputObject $As -NewInputObject $NewRecord #添加A记录 Add-DnsServerResourceRecordA -Name $HostName -ZoneName $ZoneName -AllowUpdateAny -IPv4Address $IP
如果在区域aa.com下新建了子区域bb,则在添加A记录的时候,ZoneName保持不变,仍为aa.com,HostName原来为host01,则需要修改为 host01.bb,然后再通过命令添加即可 Add-DnsServerResourceRecordA -Name $HostName -ZoneName $ZoneName -AllowUpdateAny -IPv4Address $IP
#修改A记录TTL值 $OldObj=Get-DnsServerResourceRecord -ZoneName "xx.com" -RRType "A" foreach ($record in $OldObj) { $NewObj = $record.Clone() $NewObj.TimeToLive = [System.TimeSpan]::FromHours(6) Set-DnsServerResourceRecord -NewInputObject $NewObj -OldInputObject $record -ZoneName "xx.com" -PassThru $NewObj=$Null $record=$Null }
From:http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/13/manage-dns-in-a-windows-environment-by-using-powershell.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?