PowerShell-এ Active Directory (AD) অবজেক্ট অনুসন্ধান এবং LDAP Query ব্যবহার করা একটি গুরুত্বপূর্ণ কাজ, বিশেষ করে যখন আপনাকে ডোমেইন থেকে ইউজার, গ্রুপ, অথবা অন্যান্য অবজেক্ট নিয়ে কাজ করতে হয়। PowerShell-এর মধ্যে ActiveDirectory মডিউল ব্যবহার করে আপনি সহজেই Active Directory-তে query করতে পারেন। LDAP (Lightweight Directory Access Protocol) হল একটি প্রোটোকল যা AD থেকে ডেটা অনুসন্ধান ও পরিচালনা করতে ব্যবহৃত হয়।
Active Directory Module
PowerShell-এ Active Directory-তে কাজ করার জন্য Active Directory module ইনস্টল করা প্রয়োজন। সাধারণত Windows Server-এ এই মডিউলটি ইতিমধ্যেই ইনস্টল থাকে, তবে ক্লায়েন্ট অপারেটিং সিস্টেমে এটি আলাদাভাবে ইনস্টল করতে হতে পারে।
1. Active Directory Module ইনস্টল করা
Windows 10 বা Windows Server-এর ক্লায়েন্ট সংস্করণে RSAT (Remote Server Administration Tools) ব্যবহার করে Active Directory মডিউল ইনস্টল করা যেতে পারে।
# RSAT ইনস্টল করতে হবে (Windows 10 বা Windows Server)
Add-WindowsFeature RSAT-AD-PowerShell
Active Directory (AD) অবজেক্ট Query করা
PowerShell ব্যবহার করে AD-এর ইউজার, গ্রুপ, কম্পিউটার, বা অন্যান্য অবজেক্ট সম্পর্কে তথ্য খোঁজা যায়। নিম্নলিখিত কমান্ডগুলি AD অবজেক্টের তথ্য প্রাপ্তির জন্য ব্যবহৃত হয়।
1. Get-ADUser
AD থেকে ইউজারের তথ্য খুঁজতে Get-ADUser কমান্ড ব্যবহার করা হয়।
# ইউজারের তথ্য অনুসন্ধান
Get-ADUser -Identity "username"
# ইউজারের প্রপার্টি সহ বিস্তারিত তথ্য দেখানো
Get-ADUser -Identity "username" -Properties *
2. Get-ADGroup
AD থেকে গ্রুপের তথ্য খুঁজতে Get-ADGroup কমান্ড ব্যবহার করা হয়।
# গ্রুপের তথ্য অনুসন্ধান
Get-ADGroup -Identity "GroupName"
# সমস্ত গ্রুপের তালিকা দেখানো
Get-ADGroup -Filter *
3. Get-ADComputer
AD থেকে কম্পিউটারের তথ্য খুঁজতে Get-ADComputer কমান্ড ব্যবহার করা হয়।
# একটি নির্দিষ্ট কম্পিউটার অনুসন্ধান
Get-ADComputer -Identity "ComputerName"
# সমস্ত কম্পিউটারের তালিকা
Get-ADComputer -Filter *
4. Get-ADObject
আপনি যদি AD-এর অন্যান্য অবজেক্ট যেমন OU (organizational units), contact, বা DNS-রেকর্ড দেখতে চান, তবে Get-ADObject ব্যবহার করতে পারেন।
# AD অবজেক্ট অনুসন্ধান
Get-ADObject -Filter {ObjectClass -eq "user"}
# নির্দিষ্ট অবজেক্টের বিস্তারিত তথ্য
Get-ADObject -Identity "CN=John Doe,OU=Users,DC=domain,DC=com"
LDAP Query ব্যবহার করা
LDAP (Lightweight Directory Access Protocol) হল AD-র সাথে যোগাযোগ করার জন্য ব্যবহৃত একটি প্রোটোকল। PowerShell-এ LDAP কোয়েরি চালানোর জন্য ADSI (Active Directory Service Interfaces) এবং DirectorySearcher ব্যবহার করা হয়।
1. LDAP Query Using ADSI
PowerShell-এ ADSI ব্যবহার করে LDAP কোয়েরি চালানো যায়। নিচে একটি উদাহরণ দেওয়া হলো যা ইউজারের তথ্য লিস্ট করবে:
# LDAP সার্ভারে সংযোগ
$ldapConnection = New-Object DirectoryServices.DirectorySearcher
$ldapConnection.Filter = "(objectClass=user)" # ইউজার অবজেক্ট ফিল্টার
# সমস্ত ইউজারের তথ্য পাওয়ার জন্য
$ldapConnection.Properties.PropertyNames
# ইউজারের তথ্য দেখতে
$results = $ldapConnection.FindAll()
foreach ($result in $results) {
Write-Host $result.Properties["samaccountname"]
}
2. LDAP Query Using DirectorySearcher
PowerShell-এ DirectorySearcher ব্যবহার করে আরও শক্তিশালী LDAP কোয়েরি চালানো যায়। উদাহরণস্বরূপ:
# DirectorySearcher অবজেক্ট তৈরি
$directorySearcher = New-Object DirectoryServices.DirectorySearcher
# LDAP কোয়েরি ফিল্টার
$directorySearcher.Filter = "(objectClass=organizationalPerson)"
# নির্দিষ্ট প্রপার্টি পাওয়ার জন্য
$directorySearcher.PropertiesToLoad.Add("cn")
$directorySearcher.PropertiesToLoad.Add("mail")
# কোয়েরি চালানো
$results = $directorySearcher.FindAll()
# ফলাফল আউটপুট করা
foreach ($result in $results) {
Write-Host "CN: " $result.Properties["cn"]
Write-Host "Mail: " $result.Properties["mail"]
}
এই কোডটি AD থেকে সমস্ত organizationalPerson অবজেক্টের Common Name (CN) এবং Email (mail) প্রপার্টি দেখাবে।
Filter এবং অন্যান্য LDAP কন্ডিশন ব্যবহার
LDAP কোয়েরি চালানোর সময় আপনি Filter ব্যবহার করে বিভিন্ন শর্ত যোগ করতে পারেন। উদাহরণস্বরূপ, শুধুমাত্র সেই ইউজারদের দেখতে যাদের AccountExpired ফিল্ডটি True:
# ইউজারদের তথ্য যারা একাউন্ট এক্সপায়ারড
$ldapQuery = New-Object DirectoryServices.DirectorySearcher
$ldapQuery.Filter = "(&(objectClass=user)(accountExpires=TRUE))"
$results = $ldapQuery.FindAll()
foreach ($result in $results) {
Write-Host $result.Properties["samaccountname"]
}
এছাড়া আপনি -Filter প্যারামিটার ব্যবহার করে Get-ADUser বা অন্যান্য cmdlet-এ শর্তও যোগ করতে পারেন:
# নির্দিষ্ট শর্তে ইউজার খোঁজা
Get-ADUser -Filter {Enabled -eq $True -and Department -eq "HR"}
Conclusion
PowerShell-এ Active Directory অবজেক্ট অনুসন্ধান এবং LDAP Query ব্যবহার করা অত্যন্ত শক্তিশালী টুল হতে পারে আপনার AD ব্যবস্থাপনা এবং ডাটাবেস রিট্রিভাল প্রক্রিয়াগুলির জন্য। আপনি Get-ADUser, Get-ADGroup, Get-ADComputer এর মতো cmdlet ব্যবহার করে AD-এর বিভিন্ন অবজেক্ট খুঁজে বের করতে পারেন, এবং ADSI ও DirectorySearcher ব্যবহার করে LDAP কোয়েরি দিয়ে আরও কাস্টম অনুসন্ধান করতে পারেন।
Read more