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





