Manage system DNS settings with PowerShell.

# Get this from the PS gallery
# https://www.powershellgallery.com/packages/WindowsCompatibility/1.0.0
Install-Module -Name WindowsCompatibility

Import-WinModule -name dnsserver

# Manager Windows Features
Get-Command -Module dnsserver
(Get-Command -Module dnsserver).Count

# Lets look at some commands
Get-DNSserverZone -ComputerName DC1
Get-DNSServerSetting -Computername DC1

# Lets Pull some records
Get-DnsServerResourceRecord -ComputerName dc1 -ZoneName psdevops.local -RRType A

# Lets Add a primary forward lookup zone
$config = @{
    Name              = 'techsnips.internal'
    ReplicationScope  = 'Forest'
    DynamicUpdate     = 'Secure'
    ComputerName      = 'DC1'
}
Add-DnsServerPrimaryZone @config

Get-DNSserverZone -ComputerName DC1

# Lets Add a primary reverse lookup zone
$config = @{
    Name              = '20.20.10.in-addr.arpa'
    ReplicationScope  = 'Forest'
    DynamicUpdate     = 'Secure'
    ComputerName      = 'DC1'
  }
Add-DnsServerPrimaryZone @config

# Lets test the server
Test-DnsServer -ComputerName DC1 -IPAddress 10.200.0.10 -Zonename techsnips.internal

# Lets Add an A record to our new zone
$arec = @{
    ZoneName       = 'techsnips.internal'
    A              = $true
    CreatePTR      = $true
    Name           = 'app2'
    AllowUpdateAny = $true
    IPv4Address    = '10.20.20.1'
    ComputerName   = 'DC1'
}
Add-DnsServerResourceRecord @arec

Get-DnsServerResourceRecord -ComputerName DC1 -ZoneName techsnips.internal -Name 'app2'

# Lets remove the zone
Remove-DnsServerZone -ComputerName DC1 -name techsnips.internal
Remove-DnsServerZone -ComputerName DC1 -name 20.20.10.in-addr.arpa

# Further commands
Get-command -module dnsserver