src/bicep/add-ons/iaas-dns-forwarders/extensions/Set-ConditionalDnsForwarders.ps1 (28 lines of code) (raw):

# Script to set Windows DNS Server Conditional DNS Forwarders [CmdletBinding()] param ( [Parameter(Position = 0, HelpMessage = "JSON Array of DNS Conditional Forwarders to configure", Mandatory = $true)] [String] $ConditionalDnsForwardersJSON ) # Convert from JSON $conditionalDnsForwarders = $ConditionalDnsForwardersJSON | ConvertFrom-Json if (!($conditionalDnsForwarders)) { throw("Could not convert from JSON:`r`n" + $ConditionalDnsForwardersJSON) } # Loop through conditional forwarders foreach ($conditionalDnsForwarder in $conditionalDnsForwarders) { # Get existing zone $existingZone = Get-DnsServerZone -Name $conditionalDnsForwarder.Name -ErrorAction:SilentlyContinue if ($existingZone) {Write-Output ("Found existing zone for " + [char]34 + $conditionalDnsForwarder.Name + [char]34 + "...")} # Create conditional forwarder else { Add-DnsServerConditionalForwarderZone -Name $conditionalDnsForwarder.Name -MasterServers $conditionalDnsForwarder.Forwarders # Verify forwarder was created $fwdGet = Get-DnsServerZone -Name $conditionalDnsForwarder.Name -ErrorAction:SilentlyContinue if ($fwdGet) { Write-Output ([char]34 + $conditionalDnsForwarder.Name + [char]34 + " was successfully created...") } else{throw("Could not create Conditional DNS Forwarder for name " + [char]34 + $conditionalDnsForwarder.Name + [char]34 + ".")} } }