Un administrador de Windows puede usar el buen viejo Dnscmd
herramienta CLI o Servidor DNS módulo 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
los Servidor DNS módulo para PowerShell es una 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 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).
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 DC en el dominio, ejecute el siguiente comando:
Sync-DnsServerZone –passthru
Muestra 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 woshub.com -ComputerName dc01
Tambié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 woshub.com -TimeToLive 01:00:00
Para agregar un registro PTR a la Zona de búsqueda inversa, puede agregar –CrearPtr parámetro al comando anterior o crear el puntero manualmente usando el Agregar DNSServerResourceRecordPTR cmdlet:
Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.woshub.com
Para agregar un alias (CNOMBRE) 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, 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 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 Establecer-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
Puede mostrar la lista de registros DNS del mismo tipo utilizando el –RRTipo parámetro. Mostremos la lista de registros CNAME en la zona DNS especificada:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME
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*"
Para eliminar 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 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-DnsServerResourceRecordA
cmdlet, pero es más fácil agregar registros A de forma masiva desde un archivo .CSV.
Crear 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
Para crear registros A en la zona woshub.com según los datos de su archivo TXT/CSV, utilice 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 –CrearPtr parámetro a su Add-DNSServerResourceRecordA
dominio.
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.
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.
Artículos Interesantes
Contenido