PowerShell-এ Active Directory (AD) এর সাথে ইন্টিগ্রেশন খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি ব্যবহারকারী অ্যাকাউন্ট, গ্রুপ, এবং অন্যান্য AD অবজেক্ট পরিচালনা করতে চান। PowerShell আপনাকে Active Directory ম্যানেজমেন্টের জন্য একটি শক্তিশালী এবং স্বয়ংক্রিয় উপায় প্রদান করে। এই টিউটোরিয়ালে PowerShell ব্যবহার করে Active Directory-তে সাধারণ অপারেশনসমূহ কিভাবে সম্পন্ন করা যায় তা আলোচনা করা হবে।
Active Directory Module for Windows PowerShell
PowerShell-এ Active Directory (AD) এর সাথে কাজ করার জন্য Active Directory module ব্যবহার করতে হয়। এটি Windows Server-এ ডিফল্টভাবে ইনস্টল করা থাকে, কিন্তু Windows Client-এ (যেমন Windows 10) এটি আলাদাভাবে ইনস্টল করতে হয়।
Active Directory Module ইনস্টল করা (Windows Client-এ)
Windows 10 বা তার পরবর্তী সংস্করণে AD মডিউল ইনস্টল করতে, RSAT (Remote Server Administration Tools) প্যাকেজটি ইনস্টল করতে হয়।
- RSAT ইনস্টল করা:
- Settings > Apps > Optional Features > Add a Feature
- RSAT: Active Directory Domain Services and Lightweight Directory Tools নির্বাচন করুন এবং ইনস্টল করুন।
- ইনস্টলেশন সম্পন্ন হলে, PowerShell-এ
Import-Module ActiveDirectoryকমান্ডটি চালিয়ে মডিউলটি লোড করতে হবে।
Active Directory-তে ব্যবহারকারী এবং গ্রুপ পরিচালনা
PowerShell ব্যবহার করে Active Directory-তে ব্যবহারকারী অ্যাকাউন্ট এবং গ্রুপ ম্যানেজ করা খুব সহজ। এখানে কিছু সাধারণ কমান্ড দেওয়া হল যা আপনাকে AD-তে বিভিন্ন কাজ করতে সাহায্য করবে।
1. নতুন ব্যবহারকারী তৈরি করা
New-ADUser -SamAccountName "johndoe" -UserPrincipalName "johndoe@domain.com" -Name "John Doe" -GivenName "John" -Surname "Doe" -Path "CN=Users,DC=domain,DC=com" -AccountPassword (ConvertTo-SecureString "Password123" -AsPlainText -Force) -Enabled $true
এটি একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করবে যার ইউজারনেম "johndoe" এবং পাসওয়ার্ড "Password123"।
2. ব্যবহারকারী অ্যাকাউন্টের তথ্য আপডেট করা
Set-ADUser -Identity "johndoe" -Title "Software Engineer" -Department "IT"
এটি "johndoe" ব্যবহারকারীর টাইটেল এবং ডিপার্টমেন্ট আপডেট করবে।
3. ব্যবহারকারী অ্যাকাউন্ট নিষ্ক্রিয় করা
Disable-ADUser -Identity "johndoe"
এটি "johndoe" ব্যবহারকারীকে নিষ্ক্রিয় (disable) করবে।
4. ব্যবহারকারী অ্যাকাউন্ট সক্রিয় করা
Enable-ADUser -Identity "johndoe"
এটি "johndoe" ব্যবহারকারীকে সক্রিয় (enable) করবে।
AD গ্রুপ ম্যানেজমেন্ট
1. নতুন AD গ্রুপ তৈরি করা
New-ADGroup -Name "HRTeam" -SamAccountName "HRTeam" -GroupCategory "Security" -GroupScope "Global" -Path "CN=Users,DC=domain,DC=com"
এটি একটি নতুন Security গ্রুপ "HRTeam" তৈরি করবে।
2. গ্রুপে ব্যবহারকারী যোগ করা
Add-ADGroupMember -Identity "HRTeam" -Members "johndoe"
এটি "HRTeam" গ্রুপে "johndoe" ব্যবহারকারীকে যোগ করবে।
3. গ্রুপ থেকে ব্যবহারকারী মুছে ফেলা
Remove-ADGroupMember -Identity "HRTeam" -Members "johndoe"
এটি "HRTeam" গ্রুপ থেকে "johndoe" ব্যবহারকারীকে মুছে ফেলবে।
4. AD গ্রুপের সদস্যদের তালিকা দেখানো
Get-ADGroupMember -Identity "HRTeam"
এটি "HRTeam" গ্রুপের সমস্ত সদস্যদের তালিকা দেখাবে।
Active Directory থেকে তথ্য অনুসন্ধান
1. ব্যবহারকারী অনুসন্ধান করা
Get-ADUser -Identity "johndoe"
এটি "johndoe" ব্যবহারকারীর বিস্তারিত তথ্য দেখাবে।
2. নির্দিষ্ট শর্তে ব্যবহারকারী অনুসন্ধান করা
Get-ADUser -Filter {Department -eq "IT"} -Properties Name, Department
এটি "IT" ডিপার্টমেন্টে থাকা সকল ব্যবহারকারীর নাম এবং ডিপার্টমেন্ট দেখাবে।
3. সমস্ত ব্যবহারকারী তালিকা দেখানো
Get-ADUser -Filter *
এটি AD-এর সমস্ত ব্যবহারকারীর তালিকা দেখাবে।
4. গ্রুপ অনুসন্ধান করা
Get-ADGroup -Filter {Name -like "HR*"}
এটি সমস্ত গ্রুপের মধ্যে যেগুলোর নাম "HR" দিয়ে শুরু হয়, সেগুলোর তালিকা দেখাবে।
AD Domain Controller এ লগইন এবং রিমোট কমান্ড
PowerShell ব্যবহার করে Active Directory Domain Controller এ রিমোট কমান্ড চালানো সম্ভব।
1. রিমোট কমান্ড চালানো (Remote Command Execution)
Invoke-Command -ComputerName "DomainController" -ScriptBlock { Get-ADUser -Filter * } -Credential (Get-Credential)
এটি "DomainController" থেকে সমস্ত AD ব্যবহারকারীর তথ্য রিটার্ন করবে।
Active Directory সিকিউরিটি
PowerShell ব্যবহার করে AD-তে সিকিউরিটি সেটিংসও কনফিগার করা যেতে পারে। যেমন পাসওয়ার্ড পলিসি, লকআউট পলিসি ইত্যাদি।
1. AD পাসওয়ার্ড পলিসি চেক করা
Get-ADDefaultDomainPasswordPolicy
এটি ডোমেনের পাসওয়ার্ড পলিসি সম্পর্কে তথ্য দেখাবে।
2. AD পাসওয়ার্ড পলিসি পরিবর্তন করা
Set-ADDefaultDomainPasswordPolicy -MaxPasswordAge 30
এটি পাসওয়ার্ডের মেয়াদ ৩০ দিন সেট করবে।
সারাংশ
PowerShell এবং Active Directory Integration একত্রে ব্যবহার করে আপনি সহজেই AD-তে ব্যবহারকারী, গ্রুপ এবং অন্যান্য অবজেক্ট ম্যানেজমেন্টের কাজ সম্পন্ন করতে পারেন। Active Directory module PowerShell-এ কার্যকরভাবে AD পরিচালনা করার জন্য প্রয়োজনীয় কমান্ডগুলো প্রদান করে, যা স্বয়ংক্রিয়তার মাধ্যমে কাজের গতি বাড়ায় এবং জটিলতা কমায়। PowerShell-এ AD ম্যানেজমেন্ট শক্তিশালী এবং নমনীয়, যার মাধ্যমে আপনি সরাসরি AD-তে বিভিন্ন পরিবর্তন করতে এবং তথ্য অনুসন্ধান করতে পারেন।
PowerShell-এর Active Directory Module একটি শক্তিশালী টুল যা Windows Server-এ Active Directory (AD) এর সাথে সম্পর্কিত বিভিন্ন কাজ অটোমেট করতে ব্যবহৃত হয়। এই মডিউলটি ব্যবহার করে আপনি AD ব্যবহারকারীদের তথ্য পেতে পারেন, গ্রুপ ম্যানেজ করতে পারেন, এবং অন্যান্য AD সম্পর্কিত কার্যক্রম সম্পাদন করতে পারেন।
যেহেতু এই মডিউলটি Windows Server-এ ডিফল্টভাবে অন্তর্ভুক্ত থাকে, তাই আপনাকে এটি PowerShell সেশনে ইম্পোর্ট করতে হবে, যাতে আপনি AD-এর উপর কাজ করতে পারেন।
Active Directory Module ইম্পোর্ট করার জন্য প্রস্তুতি
প্রথমে নিশ্চিত করুন যে আপনি Active Directory Domain Services (AD DS) রোল এবং Active Directory PowerShell Module ইনস্টল করেছেন। Windows Server-এর বিভিন্ন সংস্করণে এই মডিউলটি আগে থেকেই ইনস্টল থাকে, তবে যদি না থাকে, তাহলে আপনাকে এটি ম্যানুয়ালি ইনস্টল করতে হতে পারে।
Windows Server-এ Active Directory Module ইনস্টল করা
যদি Active Directory Module ইনস্টল না থাকে, তাহলে Server Manager বা PowerShell ব্যবহার করে এটি ইনস্টল করা সম্ভব।
- Server Manager ব্যবহার করে:
- Server Manager খুলুন।
- "Add roles and features" এ ক্লিক করুন।
- Features এর তালিকা থেকে AD DS and AD LDS Tools সিলেক্ট করুন।
- ইনস্টলেশন প্রক্রিয়া সম্পন্ন করুন।
- PowerShell-এ ইনস্টল করা:
Install-WindowsFeature RSAT-AD-PowerShell
এই কমান্ডটি Active Directory PowerShell Module ইনস্টল করবে।
PowerShell সেশনে Active Directory Module ইম্পোর্ট করা
PowerShell সেশনে Active Directory Module ইম্পোর্ট করতে, আপনি Import-Module cmdlet ব্যবহার করতে পারেন।
Import-Module ActiveDirectory
এই কমান্ডটি Active Directory Module সেশনে লোড করবে, এবং এরপর আপনি AD সম্পর্কিত কমান্ডগুলি ব্যবহার করতে পারবেন।
Active Directory Module ইম্পোর্ট হওয়ার পর কিছু সাধারণ কমান্ড:
ব্যবহারকারী তালিকা দেখতে:
Get-ADUser -Filter *নির্দিষ্ট ব্যবহারকারীর তথ্য দেখতে:
Get-ADUser -Identity usernameব্যবহারকারী তৈরি করতে:
New-ADUser -Name "John Doe" -GivenName "John" -Surname "Doe" -SamAccountName "jdoe" -UserPrincipalName "jdoe@domain.com" -Path "CN=Users,DC=domain,DC=com" -AccountPassword (ConvertTo-SecureString "password" -AsPlainText -Force) -Enabled $trueগ্রুপের সদস্যদের তালিকা দেখতে:
Get-ADGroupMember -Identity "GroupName"
PowerShell-এ Active Directory Module ইম্পোর্ট করতে না পারলে কি করবেন?
যদি আপনি Active Directory Module ইম্পোর্ট করতে না পারেন, তবে কিছু সম্ভাব্য কারণ এবং সমাধান নিচে দেওয়া হলো:
- RSAT ইনস্টল করা হয়নি:
- উপরের ধাপ অনুসরণ করে RSAT টুল ইনস্টল করতে হবে।
PowerShell Version Compatibility:
- Active Directory Module শুধুমাত্র PowerShell 3.0 বা তার উপরের সংস্করণে কাজ করে। তাই আপনার PowerShell সংস্করণ নিশ্চিত করতে:
$PSVersionTable.PSVersion- Permissions Issue:
- নিশ্চিত করুন আপনি Administrator হিসেবে PowerShell চালাচ্ছেন, কারণ Active Directory Module ব্যবহার করার জন্য প্রশাসনিক অনুমতি প্রয়োজন।
Conclusion
PowerShell-এ Active Directory Module ব্যবহার করে আপনি সহজেই Active Directory-এর বিভিন্ন কার্যক্রম পরিচালনা করতে পারেন, যেমন ব্যবহারকারী তৈরি, গ্রুপ ম্যানেজমেন্ট, পাসওয়ার্ড রিসেট, এবং আরও অনেক কিছু। এই মডিউলটি আপনাকে AD প্রশাসনের কাজগুলোর জন্য অটোমেশন এবং স্ক্রিপ্টিং করার সুবিধা প্রদান করে।
PowerShell ব্যবহার করে আপনি Windows সিস্টেমে User এবং Group তৈরি, সম্পাদনা, এবং পরিচালনা করতে পারেন। এর জন্য PowerShell-এ কিছু কমান্ড এবং মডিউল রয়েছে, যেমন New-LocalUser, New-LocalGroup, Add-LocalGroupMember, এবং Set-LocalUser। নিচে এই কমান্ডগুলোর ব্যবহার দেখানো হলো।
User Creation (ব্যবহারকারী তৈরি করা)
PowerShell-এ নতুন local user তৈরি করতে New-LocalUser কমান্ড ব্যবহার করা হয়।
নতুন ব্যবহারকারী তৈরি করা:
New-LocalUser -Name "JohnDoe" -FullName "John Doe" -Description "Standard user" -Password (ConvertTo-SecureString "Password123" -AsPlainText -Force)
এখানে:
- -Name: ব্যবহারকারীর লগইন নাম।
- -FullName: ব্যবহারকারীর পূর্ণ নাম।
- -Description: ব্যবহারকারীর বর্ণনা।
- -Password: ব্যবহারকারীর পাসওয়ার্ড (এখানে
ConvertTo-SecureStringব্যবহার করে পাসওয়ার্ডকে সিকিউর করা হয়েছে)।
ব্যবহারকারী তৈরি করার পর পাসওয়ার্ড পরিবর্তন করা:
Set-LocalUser -Name "JohnDoe" -Password (ConvertTo-SecureString "NewPassword123" -AsPlainText -Force)
এটি "JohnDoe" ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করবে।
Group Creation (গ্রুপ তৈরি করা)
PowerShell-এ নতুন local group তৈরি করতে New-LocalGroup কমান্ড ব্যবহার করা হয়।
নতুন গ্রুপ তৈরি করা:
New-LocalGroup -Name "Developers" -Description "Group of developers"
এটি "Developers" নামে একটি নতুন গ্রুপ তৈরি করবে।
User এবং Group Management (ব্যবহারকারী এবং গ্রুপ ব্যবস্থাপনা)
গ্রুপে ব্যবহারকারী যোগ করা:
Add-LocalGroupMember -Group "Developers" -Member "JohnDoe"
এটি "JohnDoe" ব্যবহারকারীকে "Developers" গ্রুপে যোগ করবে।
গ্রুপ থেকে ব্যবহারকারী সরানো:
Remove-LocalGroupMember -Group "Developers" -Member "JohnDoe"
এটি "JohnDoe" ব্যবহারকারীকে "Developers" গ্রুপ থেকে সরিয়ে দেবে।
ব্যবহারকারী সম্পর্কে তথ্য দেখতে:
Get-LocalUser -Name "JohnDoe"
এটি "JohnDoe" ব্যবহারকারীর তথ্য দেখাবে, যেমন তার পূর্ণ নাম, বর্ণনা, এবং গ্রুপ সদস্যপদ।
গ্রুপের সদস্যরা দেখতে:
Get-LocalGroupMember -Group "Developers"
এটি "Developers" গ্রুপের সমস্ত সদস্যদের দেখাবে।
User Modification (ব্যবহারকারী সম্পাদনা)
ব্যবহারকারীর পূর্ণ নাম এবং বর্ণনা পরিবর্তন করা:
Set-LocalUser -Name "JohnDoe" -FullName "Johnathan Doe" -Description "Senior Developer"
এটি "JohnDoe" ব্যবহারকারীর পূর্ণ নাম এবং বর্ণনা পরিবর্তন করবে।
ব্যবহারকারীর অ্যাকাউন্ট ডিজেবল/এনেবল করা:
# অ্যাকাউন্ট ডিজেবল করা
Disable-LocalUser -Name "JohnDoe"
# অ্যাকাউন্ট এনেবল করা
Enable-LocalUser -Name "JohnDoe"
Group Modification (গ্রুপ সম্পাদনা)
গ্রুপের নাম পরিবর্তন করা:
Rename-LocalGroup -Name "Developers" -NewName "AdvancedDevelopers"
এটি "Developers" গ্রুপের নাম পরিবর্তন করে "AdvancedDevelopers" করে দেবে।
গ্রুপের বর্ণনা পরিবর্তন করা:
Set-LocalGroup -Name "AdvancedDevelopers" -Description "Group of experienced developers"
এটি "AdvancedDevelopers" গ্রুপের বর্ণনা পরিবর্তন করবে।
User এবং Group এর Delete (মুছে ফেলা)
ব্যবহারকারী মুছে ফেলা:
Remove-LocalUser -Name "JohnDoe"
এটি "JohnDoe" ব্যবহারকারী মুছে ফেলবে।
গ্রুপ মুছে ফেলা:
Remove-LocalGroup -Name "AdvancedDevelopers"
এটি "AdvancedDevelopers" গ্রুপ মুছে ফেলবে।
সারাংশ
PowerShell-এ User এবং Group তৈরি, সম্পাদনা, এবং মুছে ফেলার জন্য বিভিন্ন কমান্ড রয়েছে, যেমন New-LocalUser, New-LocalGroup, Add-LocalGroupMember, Set-LocalUser, Remove-LocalUser, Get-LocalUser, ইত্যাদি। এগুলি ব্যবহার করে আপনি সিস্টেমের ব্যবহারকারী এবং গ্রুপগুলি সহজেই ম্যানেজ করতে পারেন।
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 কোয়েরি দিয়ে আরও কাস্টম অনুসন্ধান করতে পারেন।
PowerShell একটি অত্যন্ত শক্তিশালী টুল যা Active Directory (AD) সম্পর্কিত বিভিন্ন কাজ স্বয়ংক্রিয় (automate) করার জন্য ব্যবহৃত হয়। Active Directory এর সাথে কাজ করার জন্য Microsoft এর PowerShell Module ActiveDirectory ব্যবহার করা হয়, যা AD ব্যবস্থাপনা, ব্যবহারকারী, গ্রুপ, এবং অন্যান্য ডিরেক্টরি অবজেক্ট তৈরি, পরিবর্তন বা মুছে ফেলা সহজ করে তোলে।
এখানে কিছু জনপ্রিয় Active Directory Automation Techniques আলোচনা করা হলো।
Active Directory Module ইনস্টল করা
PowerShell-এ Active Directory এর সাথে কাজ করার জন্য প্রথমে ActiveDirectory module ইনস্টল করা প্রয়োজন।
# Active Directory module ইনস্টল করতে
Install-WindowsFeature RSAT-AD-PowerShell
উইন্ডোজ 10 বা 11 এ, RSAT (Remote Server Administration Tools) ইনস্টল করতে হবে:
# Windows 10 বা 11 এ RSAT ইনস্টল করা
Add-WindowsCapability -Online -Name "Rsat.ActiveDirectory.DomainServices.Tools"
Active Directory User Management Automation
PowerShell ব্যবহার করে Active Directory ব্যবহারকারীদের তৈরি, পরিবর্তন এবং মুছে ফেলা অটোমেট করা যায়।
1. ব্যবহারকারী তৈরি করা (Create a New User)
PowerShell দিয়ে নতুন AD ব্যবহারকারী তৈরি করার জন্য New-ADUser কমান্ড ব্যবহার করা হয়।
New-ADUser -SamAccountName "jdoe" -Name "John Doe" -GivenName "John" -Surname "Doe" -UserPrincipalName "jdoe@domain.com" -Path "OU=Users,DC=domain,DC=com" -AccountPassword (ConvertTo-SecureString "Password123" -AsPlainText -Force) -Enabled $true
এখানে -Path প্যারামিটারটি ব্যবহারকারী কোথায় তৈরি হবে (উদাহরণস্বরূপ, একটি OU বা Organizational Unit)। এছাড়াও, -AccountPassword প্যারামিটার দিয়ে নতুন ব্যবহারকারীর পাসওয়ার্ড সেট করা হয়।
2. ব্যবহারকারী পরিবর্তন করা (Modify a User)
AD ব্যবহারকারীর অ্যাট্রিবিউট পরিবর্তন করতে Set-ADUser ব্যবহার করা হয়।
Set-ADUser -Identity "jdoe" -Title "Software Engineer" -Department "IT"
এখানে, -Identity প্যারামিটার ব্যবহারকারীর ইউনিক আইডেন্টিটি নির্দেশ করে (যেমন, SamAccountName বা DistinguishedName)।
3. ব্যবহারকারী নিষ্ক্রিয় করা (Disable a User Account)
একটি ব্যবহারকারী অ্যাকাউন্ট নিষ্ক্রিয় করতে Disable-ADUser ব্যবহার করা হয়।
Disable-ADUser -Identity "jdoe"
4. ব্যবহারকারী মুছে ফেলা (Delete a User)
ব্যবহারকারী মুছে ফেলার জন্য Remove-ADUser ব্যবহার করা হয়।
Remove-ADUser -Identity "jdoe" -Confirm:$false
এখানে, -Confirm:$false ব্যবহার করলে প্রম্পট ছাড়াই ব্যবহারকারী মুছে যাবে।
Active Directory Group Management Automation
PowerShell দিয়ে AD গ্রুপ ম্যানেজমেন্টও স্বয়ংক্রিয় করা যায়। গ্রুপ তৈরি, ব্যবহারকারী যুক্ত করা, এবং গ্রুপ থেকে ব্যবহারকারী মুছে ফেলা সাধারণ কাজগুলো অটোমেট করা যায়।
1. গ্রুপ তৈরি করা (Create a New Group)
নতুন AD গ্রুপ তৈরি করতে New-ADGroup কমান্ড ব্যবহার করা হয়।
New-ADGroup -Name "HR Team" -GroupScope Global -Path "OU=Groups,DC=domain,DC=com"
2. গ্রুপে ব্যবহারকারী যুক্ত করা (Add User to a Group)
একটি ব্যবহারকারীকে একটি গ্রুপে যুক্ত করতে Add-ADGroupMember কমান্ড ব্যবহার করা হয়।
Add-ADGroupMember -Identity "HR Team" -Members "jdoe"
3. গ্রুপ থেকে ব্যবহারকারী মুছে ফেলা (Remove User from a Group)
একটি ব্যবহারকারীকে গ্রুপ থেকে মুছে ফেলতে Remove-ADGroupMember ব্যবহার করা হয়।
Remove-ADGroupMember -Identity "HR Team" -Members "jdoe" -Confirm:$false
Active Directory Reports Automation
PowerShell দিয়ে Active Directory-তে বিভিন্ন রিপোর্ট তৈরি করা এবং সেগুলোর তথ্য সংগ্রহ করা খুব সহজ। সাধারণত Get-ADUser, Get-ADGroup, Get-ADComputer ইত্যাদি কমান্ড ব্যবহার করে রিপোর্ট তৈরি করা হয়।
1. ব্যবহারকারীদের রিপোর্ট তৈরি করা (Generate User Report)
Active Directory তে সকল ব্যবহারকারীর তথ্য সংগ্রহ করতে Get-ADUser কমান্ড ব্যবহার করা হয়।
Get-ADUser -Filter * -Properties Name, Title, Department | Select-Object Name, Title, Department | Export-Csv -Path "C:\Reports\ADUsers.csv" -NoTypeInformation
এখানে, -Filter * সকল ব্যবহারকারীদের নিয়ে রিপোর্ট তৈরি করবে এবং Select-Object দ্বারা শুধুমাত্র প্রয়োজনীয় প্রপার্টি নির্বাচন করা হয়েছে। Export-Csv কমান্ড দ্বারা রিপোর্ট CSV ফাইল হিসেবে সংরক্ষণ করা হয়েছে।
2. Inactive Users Report (নিষ্ক্রিয় ব্যবহারকারীদের রিপোর্ট)
নিষ্ক্রিয় ব্যবহারকারীদের রিপোর্ট তৈরি করতে এবং তাদের তথ্য বের করতে নিচের কমান্ড ব্যবহার করা যেতে পারে।
Get-ADUser -Filter {Enabled -eq $false} -Properties Name, LastLogonDate | Select-Object Name, LastLogonDate | Export-Csv -Path "C:\Reports\InactiveUsers.csv" -NoTypeInformation
Active Directory Permission Management Automation
PowerShell দিয়ে Active Directory Permissions ম্যানেজমেন্ট স্বয়ংক্রিয় করা যায়। AD অবজেক্টে অনুমতি প্রদান বা প্রত্যাহার করার জন্য কিছু কমান্ড রয়েছে।
1. Permission Assign করা (Assign Permissions)
PowerShell দিয়ে AD অবজেক্টে ব্যবহারকারীদের অনুমতি প্রদান করতে Add-ADPermission ব্যবহার করা হয়।
Add-ADPermission -Identity "CN=JohnDoe,OU=Users,DC=domain,DC=com" -User "jdoe" -ExtendedRights "Send As"
2. Permission Remove করা (Remove Permissions)
যেকোনো AD অবজেক্ট থেকে অনুমতি প্রত্যাহার করতে Remove-ADPermission ব্যবহার করা হয়।
Remove-ADPermission -Identity "CN=JohnDoe,OU=Users,DC=domain,DC=com" -User "jdoe"
Conclusion
PowerShell Active Directory Automation একটি অত্যন্ত শক্তিশালী এবং কার্যকরী টুল, যা AD ব্যবস্থাপনা এবং সিস্টেম অ্যাডমিনিস্ট্রেশনকে সহজ এবং দক্ষ করে তোলে। ব্যবহারকারীদের তৈরি, পরিবর্তন, মুছে ফেলা, গ্রুপ ম্যানেজমেন্ট, রিপোর্ট তৈরি এবং অ্যাকাউন্টের অনুমতি নিয়ন্ত্রণ—সবকিছুই PowerShell দিয়ে স্বয়ংক্রিয় করা সম্ভব। এর মাধ্যমে সিস্টেম অ্যাডমিনিস্ট্রেটররা সিস্টেম পরিচালনা ও টাস্ক অটোমেশন করতে পারছেন সহজে এবং দ্রুত।
Read more