Vytvárajte a spravujte záznamy a zóny DNS z prostredia PowerShell

Správca servera Windows DNS systému Windows môže použiť starý dobrý nástroj na správu servera, zón a záznamov DNS dnscmd, alebo využite modul PowerShell DNSServer. V tomto článku sa budeme zaoberať základnými operáciami hromadného vytvárania, úpravy a odstraňovania rôznych záznamov DNS a zón pomocou technológie PowerShell..

obsah:

  • Modul PowerShell - DNSServer
  • Správa zón DNS z prostredia PowerShell
  • Spravujte záznamy DNS pomocou modulu DNSServer
  • Ako pridať viac záznamov A / PTR do zóny DNS pomocou PowerShell?

Modul PowerShell - DNSServer

Modul PowerShell DNSServer súčasť RSAT. Vo Windows 10 je RSAT nainštalovaný samostatne a na Windows Server môžete nainštalovať modul pomocou Správcu serverov (Nástroje správy rolí -> Nástroje servera DNS)..

Skontrolujte, či má systém modul PoSh DNSServer:

Získajte modul DNSServer -ListDostupné

Môžete v ňom uviesť príkazy (vo verzii modulu v systéme Windows Server 2012 R2 je k dispozícii viac ako 100 príkazov):

Získajte modul DNSServer

Správa zón DNS z prostredia PowerShell

Uvádzame zóny na serveri DNS (v našom prípade je to radič domény):

Get-DnsServerZone -ComputerName dc01

Ak chcete pridať novú primárnu zónu DNS s názvom contoso.local, spustite príkaz:

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

Ako vidíte, bola vytvorená primárna zóna DNS, ktorá je integrovaná do služby Active Directory (isDsIntegrated = True).

Môžete vytvoriť zónu spätného vyhľadávania (Zóna blokovania):

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

Ak chcete synchronizovať novú zónu s ostatnými DC v doméne, spustite príkaz:

Sync-DnsServerZone -passthru

Zoznamy uvádzame v novej zóne DNS (je prázdna):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Na odstránenie zóny použite príkaz:

Remove-DnsServerZone -Name contoso.local -ComputerName dc01

Tento príkaz tiež odstráni všetky existujúce záznamy DNS v zóne..

Spravujte záznamy DNS pomocou modulu DNSServer

Ak chcete vytvoriť nový záznam A v určenej zóne DNS, použite príkaz:

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

Ak chcete pridať záznam PTR do reverznej zóny, v predchádzajúcom príkaze môžete pridať parameter -CreatePtr alebo ručne vytvorte ukazovateľ pomocou rutiny cmdlet Add-DNSServerResourceRecordPTR:

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

Pridanie aliasu (CNAME) pre konkrétny záznam A použite príkaz:

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

Ak chcete zmeniť IP adresu tohto záznamu A, musíte použiť dosť komplikovanú schému, pretože nemôžete priamo zmeniť IP adresu záznamu DNS.

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

Teraz zmeňte vlastnosť IPV4Address objektu $ NewADNS

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

Teraz zmeňte IP adresu A záznamu pomocou Set-DnsServerResourceRecord:

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

Skontrolujte, či sa IP adresa A záznamu zmenila:

get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local

Záznamy DNS rovnakého typu môžete uviesť v zozname zadaním typu v argumente -RRType. Zoznam záznamov CNAME v zóne:

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

Filter môžete tiež použiť na rôzne parametre záznamov DNS pomocou Where-Object. Napríklad uvádzame záznamy A, ktoré majú v názve frázu rds.

Get-DnsServerResourceRecord -ZoneName contoso.local -RRType A | Názov-hostiteľa-typu „* rds *“

Na odstránenie záznamov v DNS použite cmdlet Remove-DnsServerResourceRecord..

Ak chcete napríklad odstrániť záznam CNAME, spustite:

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

Odstránenie záznamu A:

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

Postup odstránenia záznamu PTR v reverznej zóne:

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

Ako pridať viac záznamov A / PTR do zóny DNS pomocou PowerShell?

Predpokladajme, že musíte vytvoriť veľa záznamov A naraz v konkrétnej zóne priameho vyhľadávania DNS. Môžete ich spustiť jeden po druhom pomocou príkazu Add-DnsServerResourceRecordA, ale hromadné začatie položiek A zo zoznamu zo súboru je jednoduchšie a rýchlejšie..

Vytvorte textový súbor NewDnsRecords.txt s názvami a adresami IP, ktoré chcete získať. Formát súboru je nasledujúci:

Názov hostiteľa, adresa IP

Ak chcete vytvoriť záznamy A v kontoso.local zóne podľa údajov zo súboru TXT / CSV, použite nasledujúci skript PowerShell:

Import-CSV "C: \ PS \ NewDnsRecords.txt" | %
Add-DNSServerResourceRecordA -ZoneName contoso.local -Name $ _. "HostName" -IPv4Address $ _. "IPAddress"

Ak chcete okamžite zaznamenať do reverznej zóny, pridajte do príkazu parameter Add-DNSServerResourceRecordA. -CreatePtr.

Teraz pomocou konzoly Správca DNS (dnsmgmt.msc) alebo príkazu Get-DnsServerResourceRecord -ZoneName contoso.local uistite sa, že všetky záznamy A boli úspešne vytvorené.

Ak potrebujete masívne vytvárať záznamy PTR v zóne spätného vyhľadávania, vytvorte textový / csv súbor s nasledujúcou štruktúrou

octet, hostName, zoneName 65, rds5.contoso.local, 1.168.192.in-addr.arpa 66, rds6.contoso.local, 1.168.192.in-addr.arpa 67, rds7.contoso.local, 1.168.192 .in-addr.arpa. 

Potom spustite tento skript:

Import-CSV "C: \ PS \ NewDnsPTRRecords.txt" | %
Add-DNSServerResourceRecordPTR -ZoneName $ _. "ZoneName" -Name $ _. "Octet" -PTRDomainName $ _. "HostName"

Overte, či sa záznamy PTR nachádzajú v špecifikovanej reverznej zóne DNS..