Quản trị viên Windows có thể sử dụng Dnscmd
cũ tốt công cụ cli hoặc DNSServer mô-đun cho PowerShell để quản lý các vùng và bản ghi DNS. Trong bài viết này, chúng tôi sẽ đề cập đến các hoạt động cơ bản của việc tạo, sửa đổi và xóa hàng loạt các bản ghi DNS hoặc vùng khác nhau bằng PowerShell.
Mô-đun DNSServer PowerShell
Máy chủ DNS mô-đun cho PowerShell là một phần của RSAT. Trên Windows 10, bạn sẽ phải cài đặt RSAT riêng và trên Windows Server, bạn có thể bật mô-đun này bằng cách sử dụng GUI Trình quản lý Máy chủ (Công cụ Quản trị Vai trò -> Công cụ Máy chủ DNS).
Đảm bảo rằng mô-đun DNSServer PowerShell được cài đặt trên máy tính của bạn:
Get-Module DNSServer –ListAvailable
Bạn có thể hiển thị danh sách các lệnh trong đó (phiên bản mô-đun cho Windows Server 2016 có 134 lệnh ghép ngắn):
Get-Module DNSServer
Quản lý Vùng DNS bằng PowerShell
Hiển thị danh sách các vùng DNS trên máy chủ của bạn (trong trường hợp của chúng tôi, đó là bộ điều khiển miền):
Get-DnsServerZone –ComputerName dc01
Để thêm vùng DNS chính mới có tên woshub.com, hãy chạy lệnh sau:
Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru
Như bạn có thể thấy, vùng DNS chính được tích hợp vào Active Directory đã được tạo ( isDsIntegrated =True ).
Bạn có thể tạo Vùng tra cứu ngược:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain
Để đồng bộ hóa vùng mới với các DC khác trong miền, hãy chạy lệnh sau:
Sync-DnsServerZone –passthru
Hiển thị danh sách các bản ghi trong vùng DNS mới (nó trống):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local
Để xóa vùng DNS, hãy sử dụng lệnh:
Remove-DnsServerZone -Name woshub.com -ComputerName dc01
Nó cũng sẽ xóa tất cả các bản ghi DNS hiện có trong vùng.
Quản lý Bản ghi DNS bằng Mô-đun DNSServer PowerShell
Để tạo bản ghi A mới cho máy chủ trong vùng DNS được chỉ định, hãy sử dụng lệnh sau:
Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName woshub.com -TimeToLive 01:00:00
Để thêm bản ghi PTR vào Vùng tra cứu ngược, bạn có thể thêm –CreatePtr tham số cho lệnh trước đó hoặc tạo con trỏ theo cách thủ công bằng cách sử dụng Add-DNSServerResourceRecordPTR lệnh ghép ngắn:
Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.woshub.com
Để thêm bí danh ( CNAME ) đối với bản ghi A cụ thể, hãy chạy lệnh sau:
Add-DnsServerResourceRecordCName -ZoneName woshub.com -Name Ber-RDSFarm -HostNameAlias ber-rds1.woshub.com
Để thay đổi (cập nhật) địa chỉ IP trong bản ghi A, bạn sẽ phải áp dụng một phương pháp khá phức tạp vì bạn không thể thay đổi trực tiếp địa chỉ IP của bản ghi DNS:
$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
Sau đó, thay đổi thuộc tính IPV4Address của đối tượng $ NewADNS:
$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')
Thay đổi địa chỉ IP của bản ghi A bằng cách sử dụng Set-DnsServerResourceRecord lệnh ghép ngắn:
Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName woshub.com -ComputerName dc01
Đảm bảo rằng địa chỉ IP của bản ghi A đã thay đổi:
Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com
Bạn có thể hiển thị danh sách các bản ghi DNS cùng loại bằng cách sử dụng –RRType tham số. Hãy hiển thị danh sách các bản ghi CNAME trong vùng DNS được chỉ định:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME
Bạn cũng có thể sử dụng bộ lọc theo bất kỳ thông số bản ghi DNS nào bằng Where-Object. Ví dụ:để hiển thị danh sách các bản ghi A chứa rds cụm từ trong tên máy chủ của họ:
Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"
Để xóa bản ghi DNS, lệnh ghép ngắn Remove-DnsServerResourceRecord được sử dụng.
Ví dụ:để xóa bản ghi CNAME, hãy chạy lệnh:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType CName -Name Ber-RDSFarm
Để xóa bản ghi DNS A:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType A -Name ber-rds1 –Force
Để xóa bản ghi PTR khỏi Vùng tra cứu ngược:
Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”
Cách tạo nhiều bản ghi DNS A và PTR từ tệp .CSV?
Giả sử, bạn muốn tạo nhiều bản ghi A cùng một lúc trong Vùng tra cứu chuyển tiếp DNS cụ thể. Bạn có thể thêm từng cái một bằng cách sử dụng Add-DnsServerResourceRecordA
cmdlet, nhưng việc thêm hàng loạt bản ghi A từ tệp .CSV sẽ dễ dàng hơn.
Tạo tệp văn bản NewDnsRecords.txt với tên và địa chỉ IP bạn muốn thêm vào DNS. Định dạng tệp txt như sau:
HostName, IPAddress
Để tạo bản ghi A trong vùng woshub.com theo dữ liệu trong tệp TXT / CSV của bạn, hãy sử dụng tập lệnh PowerShell sau:
Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName woshub.com -Name $_."HostName" -IPv4Address $_."IPAddress"
}
Nếu bạn muốn thêm bản ghi vào Vùng tra cứu ngược cùng lúc, hãy thêm –CreatePtr tham số cho Add-DNSServerResourceRecordA
của bạn lệnh.
Sau đó, sử dụng bảng điều khiển Trình quản lý DNS (dnsmgmt.msc
) hoặc Get-DnsServerResourceRecord -ZoneName woshub.local
đảm bảo rằng tất cả các bản ghi DNS đã được tạo thành công.
Nếu bạn muốn thêm hàng loạt bản ghi PTR vào Vùng tra cứu ngược, hãy tạo văn bản hoặc tệp CSV có cấu trúc sau:
octet,hostName,zoneName 102,ber-rds2.woshub.com,100.168.192.in-addr.arpa 103,ber-rds3.woshub.com,100.168.192.in-addr.arpa 104,ber-rds4.woshub.com,100.168.192.in-addr.arpa 105,ber-rds5.woshub.com,100.168.192.in-addr.arpa
Sau đó chạy tập lệnh:
Import-CSV "C:\PS\NewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}
Đảm bảo rằng bản ghi PTR của bạn xuất hiện trong Vùng tra cứu ngược DNS.