Crear y administrar registros y zonas DNS con PowerShell

Un administrador de Windows puede usar el viejo Dnscmd herramienta cli o Servidor DNS módulo de PowerShell para administrar zonas y registros DNS. En este artículo, cubriremos las operaciones básicas de creación, modificación y eliminación masiva de diferentes registros o zonas DNS mediante PowerShell.

Módulo DNSServer PowerShell

La Servidor DNS El módulo para PowerShell es parte de RSAT. En Windows 10, tendrá que instalar RSAT por separado, y en Windows Server puede habilitar el módulo usando la GUI del Administrador del servidor (Herramientas de administración de roles -> Herramientas del servidor DNS).

Asegúrese de que el módulo DNSServer PowerShell esté instalado en su computadora:

Get-Module DNSServer –ListAvailable

Puede mostrar la lista de comandos en él (la versión del módulo para Windows Server 2016 tiene 134 cmdlets):

Get-Module DNSServer

Administrar zonas DNS con PowerShell

Muestre la lista de zonas DNS en su servidor (en nuestro caso, es un controlador de dominio):

Get-DnsServerZone –ComputerName dc01

Para agregar una nueva zona DNS primaria llamada woshub.com, ejecute este comando:

Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru

Como puede ver, se ha creado la zona DNS primaria integrada en Active Directory (isDsIntegrated = Verdadero).

Add-DnsServerPrimaryZone

Puede crear una zona de búsqueda inversa:

Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain

Para sincronizar una nueva zona con otros controladores de dominio en el dominio, ejecute el siguiente comando:

Sync-DnsServerZone –passthru

Muestre la lista de registros en la nueva zona DNS (está vacía):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Get-DnsServerResourceRecord

Para eliminar la zona DNS, use el comando:

Remove-DnsServerZone -Name woshub.com -ComputerName dc01

También eliminará todos los registros DNS existentes en la zona.

Administrar registros DNS con el módulo DNSServer PowerShell

Para crear un nuevo registro A para el host en la zona DNS especificada, use este comando:

Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName woshub.com -TimeToLive 01:00:00

Para agregar un registro PTR a la Zona de búsqueda inversa, puede agregar –CreatePtr parámetro al comando anterior o cree el puntero manualmente usando el Add-DNSServerResourceRecordPTR cmdlet:

Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.woshub.com

Para agregar un alias (CNAME) para el registro A específico, ejecute este comando:

Add-DnsServerResourceRecordCName -ZoneName woshub.com -Name Ber-RDSFarm -HostNameAlias ber-rds1.woshub.com

Para cambiar (actualizar) la dirección IP en el registro A, tendrá que aplicar un método bastante complejo ya que no puede cambiar la dirección IP de un registro DNS directamente:

$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01

Luego cambie la propiedad IPV4Address del objeto $ NewADNS:

$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')

Cambie la dirección IP del registro A usando el Set-DnsServerResourceRecord cmdlet:

Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName woshub.com -ComputerName dc01

Asegúrese de que la dirección IP del registro A haya cambiado:

Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com

Cambiar / actualizar la dirección IP del registro del host DNS a través de PowerShell

Puede mostrar la lista de registros DNS del mismo tipo utilizando el –RRType parámetro. Vamos a mostrar la lista de registros CNAME en la zona DNS especificada:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME

Get-DnsServerResourceRecord RRType

También puede usar filtros por cualquier parámetro de registro DNS usando Where-Object. Por ejemplo, para mostrar la lista de registros A que contienen rds frase en sus nombres de host:

Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"

Get-DnsServerResourceRecord Where-Object HostName como

Para quitar registros DNS, se usa el cmdlet Remove-DnsServerResourceRecord.

Por ejemplo, para eliminar un registro CNAME, ejecute el comando:

Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType CName -Name Ber-RDSFarm

Para eliminar un registro DNS A:

Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType A -Name ber-rds1 –Force

Para eliminar un registro PTR de una zona de búsqueda inversa:

Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”

¿Cómo crear varios registros DNS A y PTR a partir de un archivo .CSV?

Supongamos que desea crear varios registros A a la vez en la zona de búsqueda directa de DNS específica. Puede agregarlos uno por uno usando el Add-DnsServerResourceRecordA cmdlet, pero es más fácil agregar registros A de forma masiva desde un archivo .CSV.

Crea un archivo de texto NewDnsRecords.txt con los nombres y direcciones IP que desea agregar a DNS. El formato del archivo txt es el siguiente:

HostName, IPAddress

Agregar varios registros DNS desde un archivo .TXT / .CSV con secuencia de comandos de PowerShell

Para crear registros A en la zona woshub.com de acuerdo con los datos de su archivo TXT / CSV, use el siguiente script de PowerShell:

Import-CSV "C:PSNewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName woshub.com -Name $_."HostName" -IPv4Address $_."IPAddress"
}

Si desea agregar registros a la Zona de búsqueda inversa al mismo tiempo, agregue el –CreatePtr parámetro a su Add-DNSServerResourceRecordA mando.

Luego, usando la consola del Administrador de DNS (dnsmgmt.msc) o Get-DnsServerResourceRecord -ZoneName woshub.local asegúrese de que todos los registros DNS se hayan creado correctamente.

Agregue masivamente grabaciones DNS usando PoweShell

Si desea agregar registros PTR a la Zona de búsqueda inversa de forma masiva, cree un archivo de texto o CSV con la siguiente estructura:

octet,hostName,zoneName
102,ber-rds2.woshub.com,100.168.192.in-addr.arpa
103,ber-rds3.woshub.com,100.168.192.in-addr.arpa
104,ber-rds4.woshub.com,100.168.192.in-addr.arpa
105,ber-rds5.woshub.com,100.168.192.in-addr.arpa

Luego ejecute el script:

Import-CSV "C:PSNewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}

Asegúrese de que sus registros PTR aparezcan en la Zona de búsqueda inversa de DNS.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *