Cree y administre zonas y registros DNS con PowerShell
Un administrador de Windows puede usar el buen viejo
Dnscmdherramienta cli o módulo DNSServer para que PowerShell administre 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 de DNS mediante PowerShell.
Módulo de PowerShell del servidor DNS
El módulo DNSServer para PowerShell es parte de RSAT. En Windows 10, deberá instalar RSAT por separado, y en Windows Server puede habilitar el módulo mediante 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 DNSServerAdministrar zonas DNS con PowerShell
Muestre la lista de zonas DNS en su servidor (en nuestro caso, es un controlador de dominio):
Get-DnsServerZone -ComputerName dc01Para agregar una nueva zona DNS primaria llamada a-d.site, ejecute este comando:
Add-DnsServerPrimaryZone -Name a-d.site -ReplicationScope "Forest" -PassThruComo puede ver, se ha creado la zona DNS primaria integrada en Active Directory (isDsIntegrated=True).
Puede crear una Zona de búsqueda inversa:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope DomainPara sincronizar una nueva zona con otros DC en el dominio, ejecute el siguiente comando:
Sync-DnsServerZone -passthruMuestra la lista de registros en la nueva zona DNS (está vacía):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local
Para eliminar la zona DNS, use el comando:
Remove-DnsServerZone -Name a-d.site -ComputerName dc01También eliminará todos los registros DNS existentes en la zona.
Administración de 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 a-d.site -TimeToLive 01:00:00Para agregar un registro PTR a la Zona de búsqueda inversa, puede agregar el parámetro -CreatePtr al comando anterior o crear el puntero manualmente usando el cmdlet Add-DNSServerResourceRecordPTR:
Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.a-d.sitePara agregar un alias (CNAME) para el registro A específico, ejecute este comando:
Add-DnsServerResourceRecordCName -ZoneName a-d.site -Name Ber-RDSFarm -HostNameAlias ber-rds1.a-d.sitePara cambiar (actualizar) la dirección IP en el registro A, deberá aplicar un método bastante complejo ya que no puede cambiar una dirección IP de un registro DNS directamente:
$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01Luego 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 cmdlet Set-DnsServerResourceRecord:
Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName a-d.site -ComputerName dc01Asegúrese de que la dirección IP del registro A haya cambiado:
Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site
Puede mostrar la lista de registros DNS del mismo tipo utilizando el parámetro -RRType. Mostremos la lista de registros CNAME en la zona DNS especificada:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName a-d.site -RRType CNAMETambié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 la frase rds en sus nombres de host:
Get-DnsServerResourceRecord -ZoneName a-d.site -RRType A | Where-Object HostName -like "*rds*"Para eliminar registros DNS, se usa el cmdlet Remove-DnsServerResourceRecord.
Por ejemplo, para eliminar un registro CNAME, ejecute el comando:
Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType CName -Name Ber-RDSFarmPara eliminar un registro DNS A:
Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType A -Name ber-rds1 -ForcePara 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 múltiples registros DNS A y PTR desde 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-DnsServerResourceRecordAcmdlet, pero es más fácil agregar registros A de forma masiva desde un archivo .CSV.
Cree un archivo de texto NewDnsRecords.txt con los nombres y las direcciones IP que desea agregar al DNS. El formato del archivo txt es el siguiente:
HostName, IPAddressPara crear registros A en la zona a-d.site según los datos de su archivo TXT/CSV, utilice el siguiente script de PowerShell:
Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName a-d.site -Name $_."HostName" -IPv4Address $_."IPAddress"
}Si desea agregar registros a la Zona de búsqueda inversa al mismo tiempo, agregue el parámetro -CreatePtr a su
Add-DNSServerResourceRecordAdominio.
Luego, usando la consola del Administrador de DNS (
dnsmgmt.msc) o
Get-DnsServerResourceRecord -ZoneName a-d.localasegúrese de que todos los registros DNS se hayan creado correctamente.
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.a-d.site,100.168.192.in-addr.arpa
103,ber-rds3.a-d.site,100.168.192.in-addr.arpa
104,ber-rds4.a-d.site,100.168.192.in-addr.arpa
105,ber-rds5.a-d.site,100.168.192.in-addr.arpa
Luego ejecute el script:
Import-CSV "C:\PS\NewDnsPTRRecords.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.








