Categories: DNSPowerShell

Создание и управление DNS записями и зонами из PowerShell

Администратор DNS сервера на Windows для управления сервером, DNS зонами и записями может использовать старую добрую утилиту Dnscmd , или воспользоваться возможностями PowerShell модуля DNSServer . В этой статье мы рассмотрим основные операцию по массовому созданию, модификации и удалению различных DNS записей и зон с помощью PowerShell.

Модуль PowerShell — DNSServer

PowerShell модуль DNSServer входит в состав RSAT. В Windows 10 RSAT устаналивается отдельно , а в Windows Server вы можете установить модуль через Server Manager (Role Administration Tools -> Dns Server Tools).

Проверим, что в системе имеется модуль PoSh DNSServer:

Get-Module DNSServer –ListAvailable

Можно вывести список команд в нем (в версии модуля на Windows Server 2012 R2 доступно более 100 команд):

Get-Module DNSServer

Управление DNS зонами из PowerShell

Выведем список зон на DNS сервере (в нашем случае это контроллер домен):

Get-DnsServerZone –ComputerName dc01

Чтобы добавить новую первичную DNS зону с именем contoso.local, выполните команду:

Add-DnsServerPrimaryZone -Name contoso.local -ReplicationScope "Forest" –PassThru

Как вы видите, была создана первичная DNS зона, интегрированная в Active Directory (isDsIntegrated=True).

Можно создать зону обратного просмотра (Lockup Zone):

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

Чтобы синхронизировать новую зону с другими DC в домене, выполните команду:

Sync-DnsServerZone –passthru

Выведем список записей в новой DNS зоне (она пуста):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Для удаления зоны воспользуйтесь командой:

Remove-DnsServerZone -Name contoso.local -ComputerName dc01

Эта команда также удалит все существующие DNS записи в зоне.

Управление DNS записиями с помошью модуля DNSServer

Чтобы создать новую A запись в указнаной DNS зоне, воспользуемся командой:

Add-DnsServerResourceRecordA -Name rds1 -IPv4Address 192.168.1.30 -ZoneName contoso.local -TimeToLive 01:00:00

Чтобы добавить PTR запись в обратной зоне, в предыдущей команде можно добавить параметр –CreatePtr или создать указатель вручную командлетом Add-DNSServerResourceRecordPTR:

Add-DNSServerResourceRecordPTR -ZoneName 1.168.192.in-addr.arpa -Name 30 -PTRDomainName rds1.contoso.local

Для добавления алиаса ( CNAME ) для определенной A записи, воспользуйтесь командой:

Add-DnsServerResourceRecordCName -ZoneName contoso.local -Name RDSFarm -HostNameAlias rds1.contoso.local

Чтобы изменить IP адрес данной A записи нужно воспользоваться довольно сложной схемой, т.к. вы не можете напрямую изменить IP адрес у DNS записи.

$NewADNS = get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local -ComputerName dc01
$OldADNS =get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local -ComputerName dc01

Теперь изменим свойство IPV4Address у объекта $NewADNS

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

Теперь изменим IP адрес A записи с помощью Set-DnsServerResourceRecord:

Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName contoso.local -ComputerName dc01

Проверим, что IP адрес A записи изменился:

get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local

Можно вывести список DNS записей одного типа, указав тип в аргументе –RRType . Выведем список записей CNAME в зоне:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName contoso.local -RRType CNAME

Также вы можете использовать фильтр по различным параметрам DNS записей с помощью Where-Object. Например, выведем список A записей, у которых в имени есть фраза rds.

Get-DnsServerResourceRecord -ZoneName contoso.local -RRType A | Where-Object HostName -like "*rds*"

Для удаления записей в DNS используется командлет Remove-DnsServerResourceRecord.

Например, для удаления CNAME записи, выполните:

Remove-DnsServerResourceRecord -ZoneName contoso.local -RRType CName -Name RDSFarm

Для удаления A записи:

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

Для удаления PTR записи в обратной зоне:

Remove-DnsServerResourceRecord -ZoneName “1.168.192.in-addr.arpa” -RRType “PTR” -Name “30”

Как добавить сразу несколько A / PTR записей в DNS зону с помощью PowerShell?

Допустим, вам нужно создать сразу множество A записей в определенной DNS зоне прямого просмотра. Вы можете завести их по-одной с помощью команды Add-DnsServerResourceRecordA, но гораздол проще и быстрее массово завести A записи по списку из файла.

Создайте текстовый файл NewDnsRecords.txt ч именами и IP адресами, которые вы хотите завести. Формат файла такой:

HostName, IPAddress

Чтобы завести A записи в зоне contoso.local по данным из TXT/CSV файла, воспользуйтесь следующим скриптом PowerShell:

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

Если нужно сразу завести записи в обратной зоне, добавьте в команду Add-DNSServerResourceRecordA параметр –CreatePtr .

Теперь с помощью консоли DNS Manager (dnsmgmt.msc) или команнды Get-DnsServerResourceRecord -ZoneName contoso.local убедитесь, что все A записи успешно созданы.

Если нужно массово завести PTR записи в зоне обратного просмотра создайте текстовый/csv файл со следующей структурой

octet,hostName,zoneName_x000D_65,rds5.contoso.local,1.168.192.in-addr.arpa_x000D_66,rds6.contoso.local,1.168.192.in-addr.arpa_x000D_67,rds7.contoso.local,1.168.192.in-addr.arpa._x000D_

Затем запустите такой скрипт:

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

Убедитесь, что PTR записи появились в указанной Reverse зоне DNS.

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago