Last active
October 8, 2019 04:42
-
-
Save jbilinski/fa810183c09d0d2f9d54d2dd6a00ff13 to your computer and use it in GitHub Desktop.
copy-dns-from-pfsense-unbound-to-windows
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#requires -Version 4.0 -Modules DnsServer | |
<# | |
.Synopsis | |
Copy Unbound DNS records from pfSense to MS DNS server | |
.DESCRIPTION | |
Facilitates movement from Unbound on pfSense to MS DNS services. | |
Function recreates A and CNAME records from pfSense backup in a MS Server DNS zone. | |
*Tested with pfSense version 2.3.2 and Server 2016 | |
.EXAMPLE | |
Import-pfSUnDNS -pfSBackupFile '.\pfsBackupConfig.xml' -Domain 'hq.vulcan.com' -DNSSrv 'msdc1.west.vulcan.com' | |
#> | |
function Import-pfSUnDNS | |
{ | |
[CmdletBinding()] | |
[OutputType([int])] | |
Param | |
( | |
# Full path of PFSense xml-formatted backup file | |
[Parameter(Mandatory = $true)]$pfSBackupFile, | |
# DNS domain name filter | |
[Parameter(Mandatory = $true)][string] $Domain, | |
# Target DNS server | |
[string] $DNSSrv | |
) | |
Begin | |
{ | |
[xml]$pfConfXML = Get-Content $pfSBackupFile -Encoding UTF8 | |
} | |
Process | |
{ | |
$pfConfXML.pfsense.unbound.hosts.ForEach({ | |
$thishost = $_ | |
if ($thishost.domain -like $Domain) | |
{ | |
Write-Verbose -Message "creating`tA record`tName:$($thishost.host).$($Domain)`t`tIP Address:$($thishost.ip)" | |
Add-DnsServerResourceRecord -A -IPv4Address $($thishost.ip) -Name $($thishost.host) -ZoneName $Domain -ComputerName $DNSSrv -CreatePtr | |
if ($thishost.aliases) | |
{ | |
forEach ($cname in $($thishost.aliases)) | |
{ | |
Write-Verbose -Message "Creating`tCNAME`t`tAlias:$($cname.item.host)`t`t`tHost:$($thishost.host).$($Domain)" | |
Add-DnsServerResourceRecord -CName -HostNameAlias "$($thishost.host).$($Domain)" -Name $($cname.item.host) -ZoneName $Domain -ComputerName $DNSSrv | |
} | |
} | |
} | |
}) | |
} | |
End | |
{ | |
Write-Verbose -Message 'Script complete.' | |
} | |
} | |
# SIG # Begin signature block | |
# MIIYZwYJKoZIhvcNAQcCoIIYWDCCGFQCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB | |
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR | |
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUiJiY/WdxCa+ZzmAE6EWoTqN1 | |
# IO6gghOLMIID7jCCA1egAwIBAgIQfpPr+3zGTlnqS5p31Ab8OzANBgkqhkiG9w0B | |
# AQUFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG | |
# A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhh | |
# d3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg | |
# Q0EwHhcNMTIxMjIxMDAwMDAwWhcNMjAxMjMwMjM1OTU5WjBeMQswCQYDVQQGEwJV | |
# UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFu | |
# dGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjCCASIwDQYJKoZIhvcN | |
# AQEBBQADggEPADCCAQoCggEBALGss0lUS5ccEgrYJXmRIlcqb9y4JsRDc2vCvy5Q | |
# WvsUwnaOQwElQ7Sh4kX06Ld7w3TMIte0lAAC903tv7S3RCRrzV9FO9FEzkMScxeC | |
# i2m0K8uZHqxyGyZNcR+xMd37UWECU6aq9UksBXhFpS+JzueZ5/6M4lc/PcaS3Er4 | |
# ezPkeQr78HWIQZz/xQNRmarXbJ+TaYdlKYOFwmAUxMjJOxTawIHwHw103pIiq8r3 | |
# +3R8J+b3Sht/p8OeLa6K6qbmqicWfWH3mHERvOJQoUvlXfrlDqcsn6plINPYlujI | |
# fKVOSET/GeJEB5IL12iEgF1qeGRFzWBGflTBE3zFefHJwXECAwEAAaOB+jCB9zAd | |
# BgNVHQ4EFgQUX5r1blzMzHSa1N197z/b7EyALt0wMgYIKwYBBQUHAQEEJjAkMCIG | |
# CCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMBIGA1UdEwEB/wQIMAYB | |
# Af8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC50aGF3dGUuY29tL1Ro | |
# YXd0ZVRpbWVzdGFtcGluZ0NBLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV | |
# HQ8BAf8EBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y | |
# MDQ4LTEwDQYJKoZIhvcNAQEFBQADgYEAAwmbj3nvf1kwqu9otfrjCR27T4IGXTdf | |
# plKfFo3qHJIJRG71betYfDDo+WmNI3MLEm9Hqa45EfgqsZuwGsOO61mWAK3ODE2y | |
# 0DGmCFwqevzieh1XTKhlGOl5QGIllm7HxzdqgyEIjkHq3dlXPx13SYcqFgZepjhq | |
# IhKjURmDfrYwggSjMIIDi6ADAgECAhAOz/Q4yP6/NW4E2GqYGxpQMA0GCSqGSIb3 | |
# DQEBBQUAMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh | |
# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD | |
# QSAtIEcyMB4XDTEyMTAxODAwMDAwMFoXDTIwMTIyOTIzNTk1OVowYjELMAkGA1UE | |
# BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTQwMgYDVQQDEytT | |
# eW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNpZ25lciAtIEc0MIIBIjAN | |
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomMLOUS4uyOnREm7Dv+h8GEKU5Ow | |
# mNutLA9KxW7/hjxTVQ8VzgQ/K/2plpbZvmF5C1vJTIZ25eBDSyKV7sIrQ8Gf2Gi0 | |
# jkBP7oU4uRHFI/JkWPAVMm9OV6GuiKQC1yoezUvh3WPVF4kyW7BemVqonShQDhfu | |
# ltthO0VRHc8SVguSR/yrrvZmPUescHLnkudfzRC5xINklBm9JYDh6NIipdC6Anqh | |
# d5NbZcPuF3S8QYYq3AhMjJKMkS2ed0QfaNaodHfbDlsyi1aLM73ZY8hJnTrFxeoz | |
# C9Lxoxv0i77Zs1eLO94Ep3oisiSuLsdwxb5OgyYI+wu9qU+ZCOEQKHKqzQIDAQAB | |
# o4IBVzCCAVMwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO | |
# BgNVHQ8BAf8EBAMCB4AwcwYIKwYBBQUHAQEEZzBlMCoGCCsGAQUFBzABhh5odHRw | |
# Oi8vdHMtb2NzcC53cy5zeW1hbnRlYy5jb20wNwYIKwYBBQUHMAKGK2h0dHA6Ly90 | |
# cy1haWEud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jZXIwPAYDVR0fBDUwMzAx | |
# oC+gLYYraHR0cDovL3RzLWNybC53cy5zeW1hbnRlYy5jb20vdHNzLWNhLWcyLmNy | |
# bDAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMjAdBgNV | |
# HQ4EFgQURsZpow5KFB7VTNpSYxc/Xja8DeYwHwYDVR0jBBgwFoAUX5r1blzMzHSa | |
# 1N197z/b7EyALt0wDQYJKoZIhvcNAQEFBQADggEBAHg7tJEqAEzwj2IwN3ijhCcH | |
# bxiy3iXcoNSUA6qGTiWfmkADHN3O43nLIWgG2rYytG2/9CwmYzPkSWRtDebDZw73 | |
# BaQ1bHyJFsbpst+y6d0gxnEPzZV03LZc3r03H0N45ni1zSgEIKOq8UvEiCmRDoDR | |
# EfzdXHZuT14ORUZBbg2w6jiasTraCXEQ/Bx5tIB7rGn0/Zy2DBYr8X9bCT2bW+IW | |
# yhOBbQAuOA2oKY8s4bL0WqkBrxWcLC9JG9siu8P+eJRRw4axgohd8D20UaF5Mysu | |
# e7ncIAkTcetqGVvP6KUwVyyJST+5z3/Jvz4iaGNTmr1pdKzFHTx/kuDDvBzYBHUw | |
# ggTeMIIDxqADAgECAhBrMmoPAyjTeh1TC/0jvUjiMA0GCSqGSIb3DQEBCwUAMH4x | |
# CzAJBgNVBAYTAlBMMSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEu | |
# MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNV | |
# BAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMTUxMDI5MTEzMDI5WhcN | |
# MjcwNjA5MTEzMDI5WjCBgDELMAkGA1UEBhMCUEwxIjAgBgNVBAoMGVVuaXpldG8g | |
# VGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsMHkNlcnR1bSBDZXJ0aWZpY2F0aW9u | |
# IEF1dGhvcml0eTEkMCIGA1UEAwwbQ2VydHVtIENvZGUgU2lnbmluZyBDQSBTSEEy | |
# MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt9uo2MjjvNrag7q5v9bV | |
# V1NBt0C6FwxEldTpZjt/tL6Qo5QJpa0hIBeARrRDJj6OSxpk7A5AMkP8gp//Si3q | |
# lN1aETaLYe/sFtRJA9jnXcNlW/JOCyvDwVP6QC3CqzMkBYFwfsiHTJ/RgMIYew4U | |
# vU4DQ8soSLAt5jbfGz2Lw4ydN57hBtclUN95Pdq3X+tGvnYoNrgCAEYD0DQbeLQo | |
# x1HHyJU/bo2JGNxJ8cIPGvSBgcdt1AR3xSGjLlP5d8/cqZvDweXVZy8xvMDCaJxK | |
# luUf8fNINQ725LHF74eAOuKADDSd+hRkceQcoaqyzwCn4zdy+UCtniiVAg3OkONb | |
# xQIDAQABo4IBUzCCAU8wDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUwHu0yLdu | |
# VqcJSJr4ck/X1yQsNj4wHwYDVR0jBBgwFoAUCHbNywf/JPbFze27kLzihDdGdfcw | |
# DgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMC8GA1UdHwQoMCYw | |
# JKAioCCGHmh0dHA6Ly9jcmwuY2VydHVtLnBsL2N0bmNhLmNybDBrBggrBgEFBQcB | |
# AQRfMF0wKAYIKwYBBQUHMAGGHGh0dHA6Ly9zdWJjYS5vY3NwLWNlcnR1bS5jb20w | |
# MQYIKwYBBQUHMAKGJWh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9jdG5jYS5j | |
# ZXIwOQYDVR0gBDIwMDAuBgRVHSAAMCYwJAYIKwYBBQUHAgEWGGh0dHA6Ly93d3cu | |
# Y2VydHVtLnBsL0NQUzANBgkqhkiG9w0BAQsFAAOCAQEAquU/dlQCTHAOKak5lgYP | |
# MbcL8aaLUvsQj09CW4y9MSMBZp3oKaFNw1D69/hFDh2C1/z+pjIEc/1x7MyID6OS | |
# CMWBWAL9C2k7zbg/ST3QjRwTFGgumw2arbAZ4p7SfDl3iG8j/XuE/ERttbprcJJV | |
# bJSx2Df9qVkdtGOy3BPNeI4lNcGajzeELtRFzOP1zI1zqOM6beeVlHBXkVC2be9z | |
# ck8vAodg4uoioe0+/dGLZo0ucm1Pxl017pOomNJnaunaGc0Cg/l0/F96GAQoHt0i | |
# Mzt2bEcFXdVS/g66dvODEMduMF+nYMf6dCcxmyiD7SGKG/EjUoTtlbytOqWjQgGd | |
# vDCCBgwwggT0oAMCAQICECjhwDznExzxH12pbsx1h6EwDQYJKoZIhvcNAQELBQAw | |
# gYAxCzAJBgNVBAYTAlBMMSIwIAYDVQQKDBlVbml6ZXRvIFRlY2hub2xvZ2llcyBT | |
# LkEuMScwJQYDVQQLDB5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJDAi | |
# BgNVBAMMG0NlcnR1bSBDb2RlIFNpZ25pbmcgQ0EgU0hBMjAeFw0xNjEwMDcxMDM2 | |
# MDFaFw0xNzEwMDcxMDM2MDFaMIGFMQswCQYDVQQGEwJVUzEeMBwGA1UECgwVT3Bl | |
# biBTb3VyY2UgRGV2ZWxvcGVyMSwwKgYDVQQDDCNPcGVuIFNvdXJjZSBEZXZlbG9w | |
# ZXIsIEphbiBCaWxpbnNraTEoMCYGCSqGSIb3DQEJARYZamFtaWUrY2VydHVtQGJp | |
# bGluc2tpLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKKgrBtw | |
# iyfOARIYlZgGauU5C7nrWEbi1lmHQRx52t5fyVq5sBUo5/hGJhkuHPbn+BdwSPz6 | |
# L/LYAxw6GPOk5bUho80s/HbfSuyT6EQH3xQbMqnQlsZW++PVqG/P3TLV7k1lqAFk | |
# f7tsGHsLmlWclqsP+KcRoNTuyxhooWEZF6Sc3jO7atyhCaVyw4zu338DKUvzLMeE | |
# qY5EcnbkKdqVuxtUoKdZVjaOLfB4n7MkqxrAqr6Dd+OvMCZCG3lRnKqhCkj1/1B0 | |
# sGgszPyi3k+mFGMnQR1GI8dtSvK4VZKKm7yjXZpZn66nzG7hm+7FraYYcYdWFflD | |
# es1vcI5bjVV4RnsCAwEAAaOCAnkwggJ1MAwGA1UdEwEB/wQCMAAwMgYDVR0fBCsw | |
# KTAnoCWgI4YhaHR0cDovL2NybC5jZXJ0dW0ucGwvY3NjYXNoYTIuY3JsMHEGCCsG | |
# AQUFBwEBBGUwYzArBggrBgEFBQcwAYYfaHR0cDovL2NzY2FzaGEyLm9jc3AtY2Vy | |
# dHVtLmNvbTA0BggrBgEFBQcwAoYoaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBs | |
# L2NzY2FzaGEyLmNlcjAfBgNVHSMEGDAWgBTAe7TIt25WpwlImvhyT9fXJCw2PjAd | |
# BgNVHQ4EFgQUlV5AotNSTxHWx+uAdyQ04oOLrCEwHQYDVR0SBBYwFIESY3NjYXNo | |
# YTJAY2VydHVtLnBsMA4GA1UdDwEB/wQEAwIHgDCCATgGA1UdIASCAS8wggErMIIB | |
# JwYFZ4EMAQQwggEcMCUGCCsGAQUFBwIBFhlodHRwczovL3d3dy5jZXJ0dW0ucGwv | |
# Q1BTMIHyBggrBgEFBQcCAjCB5TAgFhlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEu | |
# MAMCAQEagcBVc2FnZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN0cmljdGx5IHN1 | |
# YmplY3RlZCB0byB0aGUgQ0VSVFVNIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3Rh | |
# dGVtZW50IChDUFMpIGluY29ycG9yYXRlZCBieSByZWZlcmVuY2UgaGVyZWluIGFu | |
# ZCBpbiB0aGUgcmVwb3NpdG9yeSBhdCBodHRwczovL3d3dy5jZXJ0dW0ucGwvcmVw | |
# b3NpdG9yeS4wEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEB | |
# AGhKNrA7zl4yejEKesHiF9tjyIPvzGhujqOS00xWxvQTYxXP6sLCJE+gUC0Epsfw | |
# nlx/fgNopi1oAiKeJZO8IvwzUDyrNcT2Ko5K6bmbQe7MAj3E71/whMAeer8m6gKY | |
# ntYIObDjDCIQzHJWLGVuKzH9Bnr5uARiLvWcZIBD6LFsVBg9/OkcHFKqoaYlpQAJ | |
# p9Zcoi8Hn/yhiYK/CfgDAKLG1MLxB4HLP9Dc7PWSEqNsIqdY4BJVVvmD4P4kaJR/ | |
# IXnVDHI6fBMcivadCryNnKFS3Pi6iBtPowdMpOaarlVqKJ6/ub7Q2Y7gvAYJniKR | |
# 3vOKih6aNcQ9AHcuja9up/ExggRGMIIEQgIBATCBlTCBgDELMAkGA1UEBhMCUEwx | |
# IjAgBgNVBAoMGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsMHkNl | |
# cnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAwwbQ2VydHVtIENv | |
# ZGUgU2lnbmluZyBDQSBTSEEyAhAo4cA85xMc8R9dqW7MdYehMAkGBSsOAwIaBQCg | |
# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE | |
# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ | |
# BDEWBBT74BYVjuHL+b0YV6hSRyU0aeg9GzANBgkqhkiG9w0BAQEFAASCAQBbDyQy | |
# 62l0ER0gN8FtujF4GELBm34djqk68l2Lwqu0VgBEc08+6f1DQp19qRxxH2I7TPm3 | |
# D2hJ0Rv8tYTvn6ae+ev7HyMQ7TRJfu7rXfdZk1ak54JuwluAfkFQT+ymrbK7LtF2 | |
# Xg3wm29lU8kgBizI3VPurTgl+PfEwIbSfmiipUQ3iwQZvKaNNJLGRY1trEUDP/SK | |
# dcXAw/LbH3oIo8vEkPN8DbmvXR10sh8bgHq+N/wl1UeIVhOBK3Fsxg+LoVDzl8HY | |
# yeylqpkWHeZshrvi2OTW57GtuRxRVsQcHDWGzahxwaChegpYpoWUiHOipDI+DPvh | |
# pU7b62ggpAf+eLtXoYICCzCCAgcGCSqGSIb3DQEJBjGCAfgwggH0AgEBMHIwXjEL | |
# MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTAwLgYD | |
# VQQDEydTeW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0gRzICEA7P | |
# 9DjI/r81bgTYapgbGlAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG | |
# 9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE2MTEyOTIwMDMzOFowIwYJKoZIhvcNAQkE | |
# MRYEFAHnw7jXQ8kBloKhLvnTVsvkOsNqMA0GCSqGSIb3DQEBAQUABIIBAE0Qvu6G | |
# 3rSkIzdGh1SD9QWIonuMfCvZglK4syGw+Spm6oK160QgelTPi1HK2XPy/3mjzO2M | |
# l8mr2YnBYNd2I04AIElUoJIDu6Yvr4wf9b22iAgL809FKa7s11sBE58a7OhOrJKg | |
# tozTCHDWcVMtrse8jgwDy3at0fKdTYQhDlJNPhoAH1MuYfE2YudUC0uW2eDIX6li | |
# ErMyELOCg5cHuDe2TZkQ/rSPveSUel2nl1qMNMUlogd3We4hmX6uhiwHWe1RriOe | |
# Dh4CWM4wJENuzzr6pNXygH54aLttpf1B4jaBnh8YG8RNJTKamaMZqDCBflHFSBy/ | |
# Z1XSKhRGHMBzo1s= | |
# SIG # End signature block |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment