Správce serveru Windows DNS může pomocí starého dobrého nástroje spravovat server, zóny DNS a záznamy Dnscmd
, nebo využijte modul PowerShell DNSServer. V tomto článku se budeme zabývat základní operací hromadného vytváření, úprav a mazání různých záznamů DNS a zón pomocí prostředí PowerShell.
Obsah:
- Modul PowerShell - DNSServer
- Správa zón DNS z prostředí PowerShell
- Spravujte záznamy DNS pomocí modulu DNSServer
- Jak přidat více záznamů A / PTR do zóny DNS pomocí prostředí PowerShell?
Modul PowerShell - DNSServer
Modul PowerShell DNSServer součást RSAT. Ve Windows 10 je RSAT nainstalován samostatně a na Windows Server můžete nainstalovat modul pomocí Správce serveru (Nástroje pro správu rolí -> Nástroje serveru DNS)..
Zkontrolujte, zda systém obsahuje modul PoSh DNSServer:
Získejte modul DNSServer -ListDostupný
Můžete v něm uvést příkazy (ve verzi modulu v systému Windows Server 2012 R2 je k dispozici více než 100 příkazů):
Get-Module DNSServer
Správa zón DNS z prostředí PowerShell
Uvádíme zóny na serveru DNS (v našem případě je to řadič domény):
Get-DnsServerZone -ComputerName dc01
Chcete-li přidat novou primární zónu DNS s názvem contoso.local, spusťte příkaz:
Add-DnsServerPrimaryZone -Name contoso.local -ReplicationScope "Forest" -PassThru
Jak vidíte, byla vytvořena primární zóna DNS, která je integrována do služby Active Directory (isDsIntegrated = True).
Můžete vytvořit zónu zpětného vyhledávání (Lockup Zone):
Add-DnsServerPrimaryZone -NetworkId "192.168.1.0/24" -ReplicationScope Domain
Chcete-li synchronizovat novou zónu s ostatními řadiči domény v doméně, spusťte příkaz:
Sync-DnsServerZone -passthru
Uvádíme položky v nové zóně DNS (je prázdná):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local
Chcete-li odstranit zónu, použijte příkaz:
Remove-DnsServerZone -Name contoso.local -ComputerName dc01
Tento příkaz také odstraní všechny existující záznamy DNS v zóně..
Spravujte záznamy DNS pomocí modulu DNSServer
Chcete-li vytvořit nový záznam A v určené zóně DNS, použijte příkaz:
Add-DnsServerResourceRecordA - jméno rds1 -IPv4Address 192.168.1.30 -ZoneName contoso.local -TimeToLive 01:00:00
Chcete-li přidat záznam PTR v reverzní zóně, můžete v předchozím příkazu přidat parametr -CreatePtr nebo ručně vytvořte ukazatel pomocí cmdlet Add-DNSServerResourceRecordPTR:
Add-DNSServerResourceRecordPTR -ZoneName 1.168.192.in-addr.arpa --Name 30 -PTRDomainName rds1.contoso.local
Přidání aliasu (CNAME) pro konkrétní záznam A použijte příkaz:
Add-DnsServerResourceRecordCName -ZoneName contoso.local -Name RDSFarm -HostNameAlias rds1.contoso.local
Chcete-li změnit IP adresu tohoto záznamu A, musíte použít poněkud komplikované schéma, protože nemůžete přímo změnit 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
Nyní změňte vlastnost IPV4Address objektu $ NewADNS
$ NewADNS.RecordData.IPv4Address = [System.Net.IPAddress] :: parse ('192.168.1.230')
Nyní změňte IP adresu A položky pomocí Set-DnsServerResourceRecord:
Set-DnsServerResourceRecord -NewInputObject $ NewADNS -OldInputObject $ OldADNS -ZoneName contoso.local -ComputerName dc01
Zkontrolujte, zda se změnila IP adresa A záznamu:
get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local
Záznamy DNS stejného typu můžete uvést zadáním typu v argumentu -Rrtype. Seznam záznamů CNAME v zóně:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName contoso.local -RRType CNAME
Filtr můžete také použít pro různé parametry záznamů DNS pomocí Where-Object. Například uvedeme záznamy A, které mají v názvu frázi rds.
Get-DnsServerResourceRecord -ZoneName contoso.local -RRType A | Název-hostitele-host-like "* rds *"
Chcete-li odstranit záznamy v DNS, použijte cmdlet Remove-DnsServerResourceRecord..
Chcete-li například odstranit záznam CNAME, spusťte:
Remove-DnsServerResourceRecord -ZoneName contoso.local -RRType CName -Name RDSFarm
Odstranění záznamu A:
Remove-DnsServerResourceRecord -ZoneName contoso.local -RRType A -Name rds1 -Force
Odstranění záznamu PTR v reverzní zóně:
Remove-DnsServerResourceRecord -ZoneName “1.168.192.in-addr.arpa” -RRType “PTR” - jméno “30”
Jak přidat více záznamů A / PTR do zóny DNS pomocí prostředí PowerShell?
Předpokládejme, že musíte vytvořit mnoho záznamů A najednou v konkrétní zóně přímého vyhledávání DNS. Můžete je spustit jeden po druhém pomocí příkazu Add-DnsServerResourceRecordA, ale hromadné spouštění položek A ze seznamu ze souboru je snazší a rychlejší.
Vytvořte textový soubor NewDnsRecords.txt se jmény a adresami IP, které chcete získat. Formát souboru je následující:
HostName, IPAddress
Chcete-li vytvořit záznamy A v kontoso.local zóně podle dat ze souboru TXT / CSV, použijte následující skript PowerShell:
Import-CSV "C: \ PS \ NewDnsRecords.txt" | %
Add-DNSServerResourceRecordA -ZoneName contoso.local -Name $ _. "HostName" -IPv4Address $ _. "IPAddress"
Pokud chcete okamžitě zaznamenat v reverzní zóně, přidejte do příkazu parametr Add-DNSServerResourceRecordA. -CreatePtr.
Nyní pomocí konzoly Správce DNS (dnsmgmt.msc) nebo příkazu Get-DnsServerResourceRecord -ZoneName contoso.local
ujistěte se, že jsou všechny záznamy A vytvořeny úspěšně.
Pokud potřebujete masivně vytvářet záznamy PTR v zóně zpětného vyhledávání, vytvořte textový / csv soubor s následující strukturou
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.
Poté spusťte tento skript:
Import-CSV "C: \ PS \ NewDnsPTRRecords.txt" | %
Add-DNSServerResourceRecordPTR -ZoneName $ _. "ZoneName" -Name $ _. "Octet" -PTRDomainName $ _. "HostName"
Ověřte, že se záznamy PTR objevují v určené reverzní zóně DNS..