এক Windows অ্যাডমিনיסט্রেটর পুরনো ভালো Dnscmd CLI টুল বা PowerShell-এর DNSServer মডিউল ব্যবহার করে DNS zone এবং record ম্যানেজ করতে পারেন। এই লেখায় আমরা PowerShell ব্যবহার করে বিভিন্ন DNS রেকর্ড বা zone-এর বাল্ক তৈরির, পরিবর্তনের, এবং রিমUভ করার বেসিক অপারেশন কভার করব।
DNSServer PowerShell মডিউল
DNSServer PowerShell মডিউল RSAT-এর অংশ। Windows 10-এ আপনাকে RSAT আলাদাভাবে ইনস্টল করতে হবে, এবং Windows Server-এ Server Manager GUI দিয়ে মডিউলটি এনেবল করতে পারেন (Role Administration Tools → DNS Server Tools)।

DNSServer PowerShell মডিউল আপনার কম্পিউটারে ইনস্টল আছে কিনা চেক করুন:
Get-Module DNSServer –ListAvailable
এতে উপলব্ধ কমান্ডের তালিকা দেখান (Windows Server 2016-র মডিউল ভার্সনে ১৩৪টি কমান্ডলেট রয়েছে):
Get-Module DNSServer

PowerShell দিয়ে DNS Zone ম্যানেজ করা
আপনার সার্ভারের DNS zone তালিকা দেখান (আমাদের কেসে, এটি একটি ডোমেন কন্ট্রোলার):
Get-DnsServerZone –ComputerName dc01
woshub.com নামে একটি নতুন প্রাইমারি DNS zone যোগ করতে এই কমান্ড চালান:
Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru
আপনি দেখতে পাচ্ছেন, Active Directory-তে ইন্টিগ্রেটেড প্রাইমারি DNS zone তৈরি হয়েছে (isDsIntegrated=True)।

আপনি একটি Reverse Lookup Zone তৈরি করতে পারেন:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain
নতুন zone অন্য DCs-সহ ডোমেনে সিঙ্ক্রোনাইজ করতে নিচের কমান্ড চালান:
Sync-DnsServerZone –passthru
নতুন DNS zone-এ রেকর্ডের তালিকা দেখান (এটি খালি):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

DNS zone রিমুভ করতে কমান্ড ব্যবহার করুন:
Remove-DnsServerZone -Name woshub.com -ComputerName dc01
এটি zone-এ বিদ্যমান সব DNS রেকর্ডও রিমুভ করবে।
DNSServer PowerShell মডিউল দিয়ে DNS Records ম্যানেজ করা
নির্দিষ্ট DNS zone-এ হোস্টের জন্য একটি নতুন A রেকর্ড তৈরি করতে এই কমান্ড ব্যবহার করুন:
Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName woshub.com -TimeToLive 01:00:00
Reverse Lookup Zone-এ PTR রেকর্ড যোগ করতে, আপনি আগের কমান্ডে –CreatePtr প্যারামিটার যোগ করতে পারেন বা Add-DNSServerResourceRecordPTR কমান্ডলেট ব্যবহার করে ম্যানুয়ালি পয়েন্টার তৈরি করতে পারেন:
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 কমান্ডলেট ব্যবহার করে 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 zone-এ CNAME রেকর্ডের তালিকা দেখান:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME

আপনি Where-Object ব্যবহার করে যেকোনো DNS রেকর্ড প্যারামিটার দ্বারা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যেসব A রেকর্ডের হোস্টনেমে rds ফ্রেজ থাকে তাদের তালিকা দেখান:
Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"

DNS রেকর্ড রিমুভ করতে Remove-DnsServerResourceRecord কমান্ডলেট ব্যবহার করা হয়।
উদাহরণস্বরূপ, একটি CNAME রেকর্ড রিমুভ করতে কমান্ড চালান:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType CName -Name Ber-RDSFarm
একটি A DNS রেকর্ড রিমুভ করতে:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType A -Name ber-rds1 –Force
Reverse Lookup Zone থেকে একটি PTR রেকর্ড রিমুভ করতে:
Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”
.CSV ফাইল থেকে একাধিক A এবং PTR DNS Records তৈরি করা
ধরুন, আপনি নির্দিষ্ট DNS Forward Lookup Zone-এ একবারে একাধিক A রেকর্ড তৈরি করতে চান। আপনি Add-DnsServerResourceRecordA কমান্ডলেট ব্যবহার করে একে একে যোগ করতে পারেন, কিন্তু .CSV ফাইল থেকে বাল্কে A রেকর্ড যোগ করা সহজ।
NewDnsRecords.txt নামে একটি টেক্সট ফাইল তৈরি করুন那些 আপনি DNS-এ যোগ করতে চান তাদের নাম এবং IP অ্যাড্রেসসহ। TXT ফাইলের ফরম্যাট নিচের মতো:
HostName, IPAddress

আপনার TXT/CSV ফাইলের ডেটা অনুযায়ী woshub.com zone-এ A রেকর্ড তৈরি করতে নিচের PowerShell স্ক্রিপ্ট ব্যবহার করুন:
Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName woshub.com -Name $_."HostName" -IPv4Address $_."IPAddress"
}
আপনি যদি একই সময়ে Reverse Lookup Zone-এ রেকর্ড যোগ করতে চান, আপনার Add-DNSServerResourceRecordA কমান্ডে –CreatePtr প্যারামিটার যোগ করুন।
তারপর DNS Manager কনসোল (dnsmgmt.msc) বা Get-DnsServerResourceRecord -ZoneName woshub.local ব্যবহার করে নিশ্চিত করুন যে সব DNS রেকর্ড সফলভাবে তৈরি হয়েছে।

যদি আপনি Reverse Lookup Zone-এ বাল্কে 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 Reverse Lookup Zone-এ দেখায়।