Professional Documents
Culture Documents
Run
Run
local"
$dnsDomainName = "root.local"
$ReverseZonesToCreate =
($record_A_list.RecordData.IPv4Address.IPAddressToString | % { $_.split(".")[0..2]
-join "."}) | select -Unique
$ReverseZonesToCreate | % {
"The reverse DNS zone for the NetworkID $_/24 need to be created. Choose
the replication scope for this new zone :"
$netid = "$_/24"
$coll = @()
$b = New-Object System.Management.Automation.Host.ChoiceDescription
"&Domain"
$b.HelpMessage = "Domain-wide replication scope"
$b | Add-Member -MemberType ScriptMethod -Name Invoke -Value {Add-
DnsServerPrimaryZone -NetworkId $netid -ReplicationScope Domain} -force
$coll+=$b
$c = New-Object System.Management.Automation.Host.ChoiceDescription
"&Forest"
$c.HelpMessage = "Forest-wide replication scope"
$c | Add-Member -MemberType ScriptMethod -Name Invoke -Value {Add-
DnsServerPrimaryZone -NetworkId $netid -ReplicationScope Forest} -force
$coll+=$c
$record_R_list = @()
$reverse_zone_list = (Get-DnsServerZone -ComputerName $dnsServer | ?
{ $_.IsReverseLookupZone -eq $true -and $_.IsAutoCreated -eq $false}).ZoneName
$reverse_zone_list | % {
try {
$record_R_list += Get-DnsServerResourceRecord -ComputerName $dnsServer -
ZoneName $_ -RRType PTR | ? {$_.Hostname -notmatch "@|DomainDnsZones|
ForestDnsZones"}
}
catch {
"No Reverse DNS zone found. Skipping..."
}
}
$record_A_list | % {
$hostname = $_.HostName
$ipaddress = $_.RecordData.IPv4Address.IPAddressToString
if ($record_R_list.recordData.PtrDomainName -notcontains
"$hostname.$dnsDomainName.") {
Write-Host -NoNewline "The following host does not
have a valid reverse record in DNS : $hostname.$dnsDomainName."
switch ($reverse_zone_list) {
{$_ -contains $arr_rvr1} {
Write-Host
$arr_rvr1 "zone exists in DNS reverse lookup zones"
Write-Host
"Creating PTR record : $reverse_ip ($hostname.$dnsDomainName.)" -foreground green
Add-DnsServerResourceRecordPtr -ComputerName $dnsServer -Name
($arr[0] -join ".") -ZoneName $arr_rvr1 -PtrDomainName "$hostname.$dnsDomainName"
}
{$_ -contains $arr_rvr2} {
Write-Host
$arr_rvr2 "zone exists in DNS reverse lookup zones"
Write-Host
"Creating PTR record : $reverse_ip ($hostname.$dnsDomainName.)" -foreground green
Add-DnsServerResourceRecordPtr -ComputerName $dnsServer -Name
($arr[0..1] -join ".") -ZoneName $arr_rvr2 -PtrDomainName "$hostname.
$dnsDomainName"
}
{$_ -contains $arr_rvr3} {
Write-Host
$arr_rvr3 "zone exists in DNS reverse lookup zones"
Write-Host
"Creating PTR record : $reverse_ip ($hostname.$dnsDomainName.)" -foreground green
Add-DnsServerResourceRecordPtr -ComputerName $dnsServer -Name
($arr[0..2] -join ".") -ZoneName $arr_rvr3 -PtrDomainName "$hostname.
$dnsDomainName"
}
}
}
Else {
Write-Host " (offline: PTR record
creation skipped)" -Fore "Red"
}
}
else {
write-host -foreground DarkGray "$hostname : PTR record already exists"
}
}