एक Windows एडमिनिस्ट्रेटर DNS ज़ोन और रिकॉर्ड प्रबंधित करने के लिए अच्छे पुराने Dnscmd CLI टूल या PowerShell के लिए DNSServer मॉड्यूल का उपयोग कर सकता है। इस लेख में हम PowerShell का उपयोग करके विभिन्न DNS रिकॉर्ड या ज़ोन को बल्क में बनाने, संशोधित करने और हटाने के बुनियादी ऑपरेशंस को कवर करेंगे।
DNSServer PowerShell मॉड्यूल
DNSServer मॉड्यूल PowerShell के लिए RSAT का हिस्सा है। Windows 10 पर आपको RSAT को अलग से इंस्टॉल करना होगा, और Windows Server पर आप सर्वर मैनेजर GUI (Role Administration Tools → DNS Server Tools) का उपयोग करके मॉड्यूल को सक्षम कर सकते हैं।

सुनिश्चित करें कि DNSServer PowerShell मॉड्यूल आपके कंप्यूटर पर इंस्टॉल है:
Get-Module DNSServer –ListAvailable
आप इसमें कमांड की सूची प्रदर्शित कर सकते हैं (Windows Server 2016 के लिए मॉड्यूल संस्करण में 134 cmdlets हैं):
Get-Module DNSServer

PowerShell के साथ DNS ज़ोन प्रबंधित करें
अपने सर्वर पर DNS ज़ोन की सूची प्रदर्शित करें (हमारे मामले में, यह एक डोमेन कंट्रोलर है):
Get-DnsServerZone –ComputerName dc01
woshub.com नामक एक नया प्राइमरी DNS ज़ोन जोड़ने के लिए, यह कमांड चलाएं:
Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru
जैसा कि आप देख सकते हैं, Active Directory में एकीकृत प्राइमरी DNS ज़ोन बनाई गई है (isDsIntegrated=True)।

आप एक रिवर्स लुकअप ज़ोन बना सकते हैं:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain
नए ज़ोन को डोमेन में अन्य DCs के साथ सिंक्रनाइज़ करने के लिए, निम्न कमांड चलाएं:
Sync-DnsServerZone –passthru
नए DNS ज़ोन में रिकॉर्ड की सूची प्रदर्शित करें (यह खाली है):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

DNS ज़ोन को हटाने के लिए, कमांड का उपयोग करें:
Remove-DnsServerZone -Name woshub.com -ComputerName dc01
यह ज़ोन में मौजूद सभी DNS रिकॉर्ड को भी हटा देगा।
DNSServer PowerShell मॉड्यूल के साथ DNS रिकॉर्ड प्रबंधित करना
निर्दिष्ट DNS ज़ोन में होस्ट के लिए एक नया A रिकॉर्ड बनाने के लिए, इस कमांड का उपयोग करें:
Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName woshub.com -TimeToLive 01:00:00
रिवर्स लुकअप ज़ोन में PTR रिकॉर्ड जोड़ने के लिए, आप पिछली कमांड में –CreatePtr पैरामीटर जोड़ सकते हैं या Add-DNSServerResourceRecordPTR cmdlet का उपयोग करके पॉइंटर मैन्युअली बना सकते हैं:
Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.woshub.com
विशिष्ट A रिकॉर्ड के लिए एक उपनाम (CNAME) जोड़ने के लिए, यह कमांड चलाएं:
Add-DnsServerResourceRecordCName -ZoneName woshub.com -Name Ber-RDSFarm -HostNameAlias ber-rds1.woshub.com
A रिकॉर्ड में IP पता बदलने (अपडेट करने) के लिए, आपको काफी जटिल विधि लागू करनी होगी क्योंकि आप DNS रिकॉर्ड के IP पते को सीधे नहीं बदल सकते:
$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
फिर $NewADNS ऑब्जेक्ट के IPV4Address गुण को बदलें:
$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')
Set-DnsServerResourceRecord cmdlet का उपयोग करके A रिकॉर्ड का IP पता बदलें:
Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName woshub.com -ComputerName dc01
सुनिश्चित करें कि A रिकॉर्ड का IP पता बदल गया है:
Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com

आप –RRType पैरामीटर का उपयोग करके एक ही प्रकार के DNS रिकॉर्ड की सूची प्रदर्शित कर सकते हैं। आइए निर्दिष्ट DNS ज़ोन में CNAME रिकॉर्ड की सूची प्रदर्शित करें:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME

आप Where-Object का उपयोग करके किसी भी DNS रिकॉर्ड पैरामीटर द्वारा फ़िल्टर भी उपयोग कर सकते हैं। उदाहरण के लिए, उनके होस्टनाम में rds वाक्यांश वाले A रिकॉर्ड की सूची प्रदर्शित करने के लिए:
Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"

DNS रिकॉर्ड हटाने के लिए, Remove-DnsServerResourceRecord cmdlet का उपयोग किया जाता है।
उदाहरण के लिए, CNAME रिकॉर्ड हटाने के लिए, कमांड चलाएं:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType CName -Name Ber-RDSFarm
A DNS रिकॉर्ड हटाने के लिए:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType A -Name ber-rds1 –Force
रिवर्स लुकअप ज़ोन से PTR रिकॉर्ड हटाने के लिए:
Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”
.CSV फ़ाइल से एकाधिक A और PTR DNS रिकॉर्ड कैसे बनाएं?
मान लीजिए, आप विशिष्ट DNS फॉरवर्ड लुकअप ज़ोन में एक साथ कई A रिकॉर्ड बनाना चाहते हैं। आप Add-DnsServerResourceRecordA cmdlet का उपयोग करके उन्हें एक-एक करके जोड़ सकते हैं, लेकिन .CSV फ़ाइल से बल्क में A रिकॉर्ड जोड़ना आसान है।
NewDnsRecords.txt टेक्स्ट फ़ाइल बनाएं जिनमें वे नाम और IP पते हों जिन्हें आप DNS में जोड़ना चाहते हैं। TXT फ़ाइल का प्रारूप इस प्रकार है:
HostName, IPAddress

आपके TXT/CSV फ़ाइल में डेटा के अनुसार woshub.com ज़ोन में A रिकॉर्ड बनाने के लिए, निम्न PowerShell स्क्रिप्ट का उपयोग करें:
Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName woshub.com -Name $_."HostName" -IPv4Address $_."IPAddress"
}
यदि आप उसी समय रिवर्स लुकअप ज़ोन में रिकॉर्ड जोड़ना चाहते हैं, तो अपने Add-DNSServerResourceRecordA कमांड में –CreatePtr पैरामीटर जोड़ें।
फिर DNS Manager कंसोल (dnsmgmt.msc) या Get-DnsServerResourceRecord -ZoneName woshub.local का उपयोग करके सुनिश्चित करें कि सभी DNS रिकॉर्ड सफलतापूर्वक बनाए गए हैं।

यदि आप रिवर्स लुकअप ज़ोन में बल्क में PTR रिकॉर्ड जोड़ना चाहते हैं, तो निम्न संरचना के साथ एक टेक्स्ट या CSV फ़ाइल बनाएं:
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
फिर स्क्रिप्ट चलाएं:
Import-CSV "C:\PS\NewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}
सुनिश्चित करें कि आपके PTR रिकॉर्ड DNS रिवर्स लुकअप ज़ोन में दिखाई दिए।