您好,欢迎访问一九零五行业门户网

PowerShell 给现有DNS记录创建PTR反向查询

今天早上豆子无意中发现公司的dns服务器上面只有正向的解析,而没有对应的ptr记录。换句话说,可以通过域名来解析ip地址,但是倒过来ip地址是找不着域名的。
1个小时写了个很简单的脚本,判断已有的记录是否存在对应的reverse zone 和ptr记录,如果没有的话,自动给我创建加上。
思路很简单,脚本也比较糙,没有任何容错处理和优化,不过实现功能就好。
$ptrzones=get-dnsserverzone -computername syddc01 | where-object {$_.zonename -like "*.arpa"} #获取所以的a记录 $machines=get-dnsserverresourcerecord -computername syddc01 -rrtype a -zonename 'omnicom.com.au'| select @{n='ip';e={$_.recorddata.ipv4address.ipaddresstostring}}, hostname, timestamp, @{n='ptrzone';e={$temp=$_.recorddata.ipv4address.ipaddresstostring.split('.');$t=$temp[2]+'.'+$temp[1]+'.'+$temp[0]+‘.in-addr.arpa’;$t}} foreach($machine in $machines){ #判断是否存在ptr的reverse zone write-host $machine.hostname write-host $machine.ptrzone $flag=0 foreach($p in $ptrzones){ if($p.zonename -eq $machine.ptrzone){ #write-host " matched ptr zone" -backgroundcolor cyan $flag=1 break } } #如果ptr zone不存在,创建一个对应的 if($flag -eq 0){ write-host " ptrzone is missing,a new ptrzone will be created" -foregroundcolor red $temp=$machine.ip.split('.') $range=$temp[0]+'.'+$temp[1]+'.'+$temp[2]+".0/24" #$range add-dnsserverprimaryzone -dynamicupdate secure -networkid $range -replicationscope domain -computername syddc01 } else{ #如果ptr zone存在,判断是否存在对应的ptr记录 $hname=get-dnsserverresourcerecord -computername syddc01 -rrtype ptr -zonename $machine.ptrzone | select @{n='name';e={$_.recorddata.ptrdomainname}} #$hname $temp="*"+$machine.hostname+"*" if($hname -like $temp){ write-host "already exist" -foregroundcolor cyan } else{ #ptr zone存在 但是ptr记录不存在 write-host "adding ptr record" -foregroundcolor yellow add-dnsserverresourcerecordptr -computername syddc01 -zonename $machine.ptrzone -name $machine.ip.split('.')[3] -allowupdateany -timetolive 01:00:00 -agerecord -ptrdomainname $machine.hostname } } }
执行脚本
结果
其它类似信息

推荐信息