Powershell to update DNS SOA & TTL modification help?

Hi All,

I need some help in modifying this below Powershell to add DNS server entry from a list of domains and setup the SOA TTL into 15 minutes.

So far I cannot figure it out how to:

  1. Set the SOA TTL to just 15 minutes.
  2. set the SOA number to be YYYYMMddd01
$DomainNames = 'CorporateProduct1.com'
$PrimaryDNSServer = 'PRDSVRDNS01-VM'
$SecondaryDNSServer1 = 'PRDSVRDNS02-VM'
$SecondaryDNSServer2 = 'PRDSVRDNS03-VM'

#Create Primary DNS Forward Lookup Zone

Add-DnsServerPrimaryZone -ComputerName $PrimaryDNSServer -Name $DomainNames -ZoneFile $DomainNames.dns -DynamicUpdate None -ResponsiblePerson “domains.$($ENV:USERDNSDOMAIN.ToLower())”
Set-DnsServerPrimaryZone -ComputerName $PrimaryDNSServer -Name $DomainNames -SecureSecondaries “TransferToSecureServers” -SecondaryServers “$([System.Net.Dns]::GetHostAddresses($SecondaryDNSServer1).IPAddressToString)”, “$([System.Net.Dns]::GetHostAddresses($SecondaryDNSServer2).IPAddressToString)”

Set the Public DNS servers to replicate to

Add-DnsServerResourceRecord -ComputerName $PrimaryDNSServer -Name ‘@’ -ZoneName $DomainNames -NS -NameServer “ns1.$ENV:USERDNSDOMAIN”
Add-DnsServerResourceRecord -ComputerName $PrimaryDNSServer -Name ‘@’ -ZoneName $DomainNames -NS -NameServer “ns2.$ENV:USERDNSDOMAIN”
Add-DnsServerResourceRecord -ComputerName $PrimaryDNSServer -Name ‘@’ -ZoneName $DomainNames -NS -NameServer “ns3.$ENV:USERDNSDOMAIN”

#Let the Forward lookup zones created completely
Start-Sleep -Seconds 5

#Replicate the Forwardlookup zones into two additional Public DNS servers
Add-DnsServerSecondaryZone -ComputerName $SecondaryDNSServer1 -MasterServers [System.Net.Dns]::GetHostAddresses($PrimaryDNSServer).IPAddressToString -Name $DomainNames -ZoneFile “$DomainNames.dns”
Add-DnsServerSecondaryZone -ComputerName $SecondaryDNSServer2 -MasterServers [System.Net.Dns]::GetHostAddresses($PrimaryDNSServer).IPAddressToString -Name $DomainNames -ZoneFile “$DomainNames.dns”

I wonder if @Splatting is even worked on the above query, hence I am asking it here.

Thank you in advance.

Splatting will make this a whole lot more readable.

Also notice that

"$([System.Net.Dns]::GetHostAddresses($SecondaryDNSServer1).IPAddressToString)"

may return a bunch of IPv4 AND IPv6 addresses

Finally, the last lines need to be updated like:

#Replicate the Forwardlookup zones into two additional Public DNS servers
Add-DnsServerSecondaryZone -ComputerName $SecondaryDNSServer1 -MasterServers ([System.Net.Dns]::GetHostAddresses($PrimaryDNSServer).IPAddressToString) -Name $DomainNames -ZoneFile "$DomainNames.dns"
Add-DnsServerSecondaryZone -ComputerName $SecondaryDNSServer2 -MasterServers ([System.Net.Dns]::GetHostAddresses($PrimaryDNSServer).IPAddressToString) -Name $DomainNames -ZoneFile "$DomainNames.dns"