কম্পিউটার টিউটোরিয়াল

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

এক 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)।

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

DNSServer PowerShell মডিউল আপনার কম্পিউটারে ইনস্টল আছে কিনা চেক করুন:

Get-Module DNSServer –ListAvailable

এতে উপলব্ধ কমান্ডের তালিকা দেখান (Windows Server 2016-র মডিউল ভার্সনে ১৩৪টি কমান্ডলেট রয়েছে):

Get-Module DNSServer

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

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)।

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

আপনি একটি 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

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

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

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

আপনি –RRType প্যারামিটার ব্যবহার করে একই টাইপের DNS রেকর্ডের তালিকা দেখাতে পারেন। নির্দিষ্ট DNS zone-এ CNAME রেকর্ডের তালিকা দেখান:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

আপনি Where-Object ব্যবহার করে যেকোনো DNS রেকর্ড প্যারামিটার দ্বারা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যেসব A রেকর্ডের হোস্টনেমে rds ফ্রেজ থাকে তাদের তালিকা দেখান:

Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

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

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

আপনার 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 রেকর্ড সফলভাবে তৈরি হয়েছে।

PowerShell দিয়ে DNS Zone এবং Record তৈরি ও ম্যানেজ করা

যদি আপনি 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-এ দেখায়।

  1. PowerShell দিয়ে উইন্ডোজে এক্টিভ TCP/IP কানেকশন চেক করা

  2. PowerShell দিয়ে Excel ফাইলে ডেটা পড়া ও লেখা

  3. ওয়াটসঅ্যাপ গ্রুপ তৈরি ও পরিচালনার পূর্ণাঙ্গ গাইড

  4. ভিজ্যুয়াল স্টুডিও কোড দিয়ে উইন্ডোজ ১০ ও ১১-এ পাওয়ারশেল স্ক্রিপ্ট বিল্ড ও রান করার বिगিনার গাইড