Generar registros DNS con PowerShell

Hola a todos, hace unos días me toco generar una serie de registros en un servidor DNS para unos host con OS Linux. Como era una cantidad considerable de registros a generar decidí hacer uso de PowerShell para generar dichos registros importándolos desde un csv de lo mas sencillo, vamos a ver como llevar a cabo esta tarea.

PowerShell logo

Lo primero es generar un archivo tipo csv que contenga los siguientes campos:

  • Hostname.
  • Ip.

Así de sencillo, no necesitamos mas campos para esta tarea. El csv quedara así:

hostname,ip
linux01,192.168.0.1
linux02,192.168.0.2
linux03,192.168.0.3

Una vez tengamos nuestro csv con los nombres e ip´s de todos los host que queramos registrar en nuestro DNS. Debemos generar el siguiente script:

$zone=Read-Host
Introduzca el dominio’
Import-CSV -Delimiter “,” -Path “c:DNS.csv” |   foreach-object{
$hostName=$_ .hostName
$ip=$_ .ip
Add-DNSServerResourceRecordA -ZoneName $zone -Name $hostName
-IPv4Address $ip 
}

Como veis primero cargo el dominio en la variable $zone, como puede ser que en vuestro DNS tengáis generadas zonas de búsqueda, si queréis generar los punteros en una de esas zonas deberéis introducir la zona correspondiente.

No olvidéis que podéis generar archivos csv donde el separados de los campos no necesaria mente sea una coma, como en este caso. Si usáis otro carácter simplemente tendréis que cambiar el campo -Delimiter al carácter que utilicéis.

Igualmente deberéis cambiar el parámetro -Path por la ruta correspondiente a donde tengáis vuestro csv.

Lo siguiente que hará nuestro código es extraer del csv los campos hostname e ip, insertarlos en el cmdlet Add-DNSServerResourceRecordA en sus campos correspondientes y generar tantos punteros como entradas tengamos en el csv.

Para terminar, si a la vez que generáis el registro DNS, queréis crear también su correspondiente puntero de búsqueda en la zona inversa, solo deberéis añandir al cmdlet el parametro -CreatePtr, quedando asi esa linea de codigo:

Add-DNSServerResourceRecordA -ZoneName $Zone -Name $hostName -IPv4Address $ip
-CreatePtr
 

Como siempre espero os sea de ayuda la información como siempre y no olvidéis comentar, dar el pertinente me gusta y enlazar el post en vuestras redes sociales, podéis hacerlo un poquito mas abajo ;).

     Nos vemos pronto.

También te podría gustar...