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..