PowerShell, DNS, Windows

SCRIPT

Get-DnsServerZone

Obtiene un listado de Zonas creadas en el servidor DNS

Windows almacena los registros de las zonas (dominios) en las siguiente ruta: C:\Windows\System32 por lo que es importante respaldar los archivos contenidos en esa ruta, antes de cualquier modificacion y asi poder tener un punto de retorno.

Agregar registros

Add-DnsServerResourceRecordMX -Preference 10 -Name «.» -TimeToLive 01:00:00 -MailExchange «URL» -ZoneName «DOMINIO.COM»

CREAR REGISTRO MX EN TODAS LAS ZONAS (DOMINIOS)

Get-DnsServerZone | where-object -property IsAutoCreated -ieq «» | Foreach-object -process {Add-DnsServerResourceRecordMX -Preference 50 -Name «.» -TimeToLive 01:00:00 -MailExchange «URL» -ZoneName $_.ZoneName}

Explicación:

Get-DnsServerZone.- nos proporciona todos las zonas o dominios que estan configurados en el servidor DNS de windows

where-object -property IsAutoCreated -ieq «».- Selecciona los dominios que fueron creados manualmente, existen zonas que son creadas automaticamente en la cracion del servicio DNS por ejemplo:

0.in-addr.arpa
127.in-addr.arpa
255.in-addr.arpa

Foreach-object -process {Add-DnsServerResourceRecordMX -Preference 50 -Name «.» -TimeToLive 01:00:00 -MailExchange «URL» -ZoneName $_.ZoneName}.- Genera un bucle para cada elemento encontrado en el paso anterior que corresponde a las zonas configuradas. Para cada Iteracion el nombre de la zona se almacena en la variable $_.ZoneName, los datos a tener en cuenta son

Preference: corresponde a la prioridad del registro, entre menor sera mayor la prioridad y visceversa

MailEchange: es la direccion del servidor encargado de enviar el correo, puede ser una IP o un registro A

ZoneName: corresponde a la zona o dominio en donde se va a agregar el registro MX

 

CREAR REGISTRO TXT EN TODAS LAS ZONAS (DOMINIOS)

Get-DnsServerZone | where-object -property IsAutoCreated -ieq «» | Foreach-object -process {Add-DnsServerResourceRecord -TXT -DescriptiveText «v=spf1 XXX.XXX.XXX.XXX include:_spf.google.com ~all» -Name «.» -zonename $_.ZoneName}

BORRADO DE REGISTROS EN TODAS LAS ZONAS (DOMINIOS)

Get-DnsServerZone | Foreach-object -process {Remove-DnsServerResourceRecord -name «test» -Zonename $_.ZoneName -RRType «TXT»}

Get-DnsServerZone | select-object -Property ZoneName, IsAutoCreated | where-object -property IsAutoCreated -ieq «» | Foreach-object -process {Remove-DnsServerResourceRecord -name «test» -Zonename $_.ZoneName -RRType «TXT»}

-RRType: parametro para definir que tipo de registro se va a eliminar,

-Name; aqui definimos el nombre del registro a eliminar

LISTADO DE REGISTROS MX, TXT, A, ETC.

Get-DnsServerZone | foreach-object -process {Get-DnsServerResourceRecord -Name «.» -ZoneName $_.ZoneName -RRType «TXT»}

Get-DnsServerResourceRecord -Name «.» -ZoneName «DOMINIO.COM» -RRType «MX»

 

También te podría gustar...