Membuat dan mengelola catatan dan zona DNS dari PowerShell

Administrator server DNS Windows dapat menggunakan utilitas lama yang baik untuk mengelola server, zona DNS, dan catatan Dnscmd, atau manfaatkan modul PowerShell DNSServer. Dalam artikel ini, kita akan membahas operasi dasar pembuatan, modifikasi, dan penghapusan berbagai catatan dan zona DNS menggunakan PowerShell.

Konten:

  • Modul PowerShell - DNSServer
  • Mengelola zona DNS dari PowerShell
  • Kelola catatan DNS menggunakan modul DNSServer
  • Cara menambahkan beberapa catatan A / PTR ke zona DNS menggunakan PowerShell?

Modul PowerShell - DNSServer

Modul PowerShell DNSServer bagian dari RSAT. Pada Windows 10, RSAT diinstal secara terpisah, dan pada Windows Server Anda dapat menginstal modul melalui Server Manager (Alat Administrasi Peran -> Alat Server Dns).

Periksa apakah sistem memiliki modul PoSh DNSServer:

Dapatkan-Modul DNSServer -ListAvailable

Anda dapat mencantumkan perintah di dalamnya (dalam versi modul pada Windows Server 2012 R2, tersedia lebih dari 100 perintah):

Dapatkan-Modul DNSServer

Mengelola zona DNS dari PowerShell

Kami mencantumkan zona pada server DNS (dalam kasus kami, ini adalah pengontrol domain):

Dapatkan-DnsServerZone -ComputerName dc01

Untuk menambahkan zona DNS primer baru bernama contoso.local, jalankan perintah:

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

Seperti yang Anda lihat, zona DNS primer telah dibuat yang terintegrasi ke dalam Direktori Aktif (isDsIntegrated = True).

Anda dapat membuat zona pencarian terbalik (Lockup Zone):

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

Untuk menyinkronkan zona baru dengan DC lain di domain, jalankan perintah:

Sinkron-DnsServerZone -passthru

Kami mencantumkan entri di zona DNS baru (kosong):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Untuk menghapus zona, gunakan perintah:

Remove-DnsServerZone -Name contoso.local -ComputerName dc01

Perintah ini juga akan menghapus semua catatan DNS yang ada di zona..

Kelola catatan DNS menggunakan modul DNSServer

Untuk membuat catatan A baru di zona DNS yang ditentukan, gunakan perintah:

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

Untuk menambahkan catatan PTR di zona mundur, pada perintah sebelumnya Anda bisa menambahkan parameter -CreatePtr atau secara manual membuat pointer dengan cmdlet Add-DNSServerResourceRecord:

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

Untuk menambahkan alias (CNAME) untuk catatan A tertentu, gunakan perintah:

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

Untuk mengubah alamat IP catatan A ini, Anda perlu menggunakan skema yang agak rumit, karena Anda tidak dapat secara langsung mengubah alamat IP dari catatan DNS.

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

Sekarang ubah properti IPV4Address dari objek $ NewADNS

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

Sekarang ubah alamat IP A dari entri menggunakan Set-DnsServerResourceRecord:

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

Pastikan alamat IP A dari entri telah berubah:

get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local

Anda bisa daftar catatan DNS dari jenis yang sama dengan menentukan jenis dalam argumen -Rrtype. Daftar catatan CNAME di zona:

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

Anda juga dapat menggunakan filter untuk berbagai parameter catatan DNS menggunakan Where-Object. Misalnya, kami mencantumkan catatan A yang memiliki frase rds dalam nama.

Get-DnsServerResourceRecord -ZoneName contoso.local -RRType A | Di mana-Objek HostName -seperti "* rds *"

Untuk menghapus catatan dalam DNS, gunakan cmdlet Remove-DnsServerResourceRecord..

Misalnya, untuk menghapus data CNAME, jalankan:

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

Untuk menghapus catatan A:

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

Untuk menghapus catatan PTR di zona terbalik:

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

Cara menambahkan beberapa catatan A / PTR ke zona DNS menggunakan PowerShell?

Misalkan Anda perlu membuat banyak catatan A sekaligus di zona pencarian langsung DNS tertentu. Anda bisa memulainya satu per satu menggunakan perintah Add-DnsServerResourceRecordA, tetapi lebih mudah dan lebih cepat untuk memulai entri A secara massal dari daftar dari file.

Buat file teks NewDnsRecords.txt dengan nama dan alamat IP yang ingin Anda dapatkan. Format file adalah sebagai berikut:

HostName, IPAddress

Untuk membuat catatan di zona contoso.local sesuai dengan data dari file TXT / CSV, gunakan skrip PowerShell berikut:

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

Jika Anda ingin segera merekam di zona mundur, tambahkan parameter Add-DNSServerResourceRecordA ke perintah -CreatePtr.

Sekarang menggunakan konsol DNS Manager (dnsmgmt.msc) atau perintah Get-DnsServerResourceRecord -ZoneName contoso.local pastikan semua catatan A berhasil dibuat.

Jika Anda perlu membuat catatan PTR secara besar-besaran di zona pencarian terbalik, buat file teks / csv dengan struktur berikut

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

Kemudian jalankan skrip ini:

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

Verifikasi bahwa catatan PTR muncul di zona DNS terbalik yang ditentukan..