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