Powershell to update DNS SOA & TTL modification help?

Welcome Forums General PowerShell Q&A Powershell to update DNS SOA & TTL modification help?

Viewing 1 reply thread
  • Author
    Posts
    • #219888
      Participant
      Topics: 21
      Replies: 20
      Points: 191
      Rank: Participant

      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.

    • #219900
      Participant
      Topics: 12
      Replies: 523
      Points: 1,214
      Helping Hand
      Rank: Community Hero

      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"
      
Viewing 1 reply thread
  • You must be logged in to reply to this topic.