অ্যাক্টিভ ডিরেক্টরি ইউজার্স অ্যান্ড কম্পিউটার (ADUC) গ্রাফিক্যাল স্ন্যাপ-ইন হলো অ্যাক্টিভ ডিরেক্টরিতে সিকিউরিটি গ্রুপ পরিচালনার একমাত্র টুল নয়। আপনি আপনার অ্যাক্টিভ ডিরেক্টরি ডোমেনে ব্যবহারকারী গ্রুপের দিনে দিনের ব্যবস্থাপনার জন্য সহজ পাওয়ারশেল কমান্ড ব্যবহার করতে পারেন। এই নিবন্ধে, আমরা দেখব কিভাবে পাওয়ারশেল ব্যবহার করে AD-এ নতুন গ্রুপ তৈরি করতে হয়, ব্যবহারকারী যোগ বা মুছে ফেলতে হয়, গ্রুপ সদস্যদের তালিকা প্রদর্শন/এক্সপোর্ট করতে হয় এবং AD গ্রুপ প্রশাসনের সময় প্রায়ই ব্যবহৃত অন্যান্য উপকারী কমান্ডগুলো।
পাওয়ারশেলের জন্য অ্যাক্টিভ ডিরেক্টরি মডিউল
AD গ্রুপ পরিচালনার জন্য আপনি উইন্ডোজ পাওয়ারশেলের জন্য অ্যাক্টিভ ডিরেক্টরি মডিউল ব্যবহার করতে পারেন। RSAT-AD-PowerShell মডিউল উইন্ডোজ সার্ভারের সব সংস্করণে উপলব্ধ (উইন্ডোজ সার্ভার ২০০৮ R2 থেকে শুরু করে), এবং এটিকে উইন্ডোজ ১০ ও ১১ ডেস্কটপে RSAT ফিচার হিসেবে ইনস্টল করা যায়।
বর্তমান পাওয়ারশেল সেশনে AD মডিউল লোড হয়েছে কিনা তা চেক করুন:
Get-Module -Listavailable
যদি লোড না থাকে, তবে এই কমান্ড দিয়ে ইম্পোর্ট করুন:
Import-Module ActiveDirectory
AD গ্রুপ পরিচালনার জন্য পাওয়ারশেল কమ্ডলেটগুলো
নিচের কমান্ড দিয়ে AD গ্রুপ পরিচালনার জন্য উপলব্ধ কম্ডলেটগুলো তালিকাভুক্ত করুন:
Get-Command -Module ActiveDirectory -Name "*Group*"
মোট ১১টি কম্ডলেট পাওয়া যাবে:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
New-ADGroup: পাওয়ারশেল দিয়ে নতুন AD গ্রুপ তৈরি করা
নির্দিষ্ট অ্যাক্টিভ ডিরেক্টরি কন্টেইনারে (OU) New-ADGroup কমান্ড ব্যবহার করে নতুন সিকিউরিটি গ্রুপ তৈরি করুন:
New-ADGroup "TestADGroup" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose
গ্রুপের বর্ণনা এবং প্রদর্শন নাম নির্দিষ্ট করতে Description এবং DisplayName অ্যাট্রিবিউট ব্যবহার করতে পারেন।
GroupScope প্যারামিটার ব্যবহার করে গ্রুপের ধরণ সেট করতে পারেন:
- 0 = DomainLocal
- 1 = Global
- 2 = Universal
ডিস্ট্রিবিউশন গ্রুপ তৈরি করতে:
New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose
ডিস্ট্রিবিউশন গ্রুপ ইমেইল পাঠাতে এবং/অথবা AD অনুমতি দেওয়ার জন্য ব্যবহার করা যেতে পারে।
AD গ্রুপ তৈরি করার সময় আপনি যেকোনো অ্যাট্রিবিউটের মান সেট করতে পারেন। বিভিন্ন গ্রুপ অ্যাট্রিবিউটের মান সেট করার সবচেয়ে সহজ উপায় হ্যাশটেবিল ব্যবহার:
$attrs = @{"mail"="mundmins@woshub.com";"displayname"="ALL Munich Admins"}
New-ADGroup -Name MUNAdmins -GroupScope Global -OtherAttributes $attrs
Add-AdGroupMember দিয়ে অ্যাক্টিভ ডিরেক্টরিতে ব্যবহারকারী যোগ করা
Add-AdGroupMember কమ্ডলেট ব্যবহার করে অ্যাক্টিভ ডিরেক্টরি গ্রুপে ব্যবহারকারী যোগ করতে পারেন। নতুন গ্রুপে দুজন ব্যবহারকারী যোগ করুন:
Add-AdGroupMember -Identity TestADGroup -Members user1, user2
বড় সংখ্যক ব্যবহারকারী একসাথে গ্রুপে যোগ করতে হলে, ব্যবহারকারীদের তালিকা CSV ফাইলে সংরক্ষণ করে পাওয়ারশেলে ইম্পোর্ট করুন এবং সাধারণ স্ক্রিপ্ট দিয়ে প্রতিটি ব্যবহারকারীকে গ্রুপে যোগ করুন।
CSV ফাইলের ফরম্যাট হলো (ব্যবহারকারীদের users কলাম হেডার দিয়ে সারাসারি তালিকাভুক্ত করুন):
Import-CSV .\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}
একটি গ্রুপ (groupX) এর সব সদস্য নিয়ে অন্য গ্রুপে (groupY) যোগ করতে:
Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $_}
নেস্টেড গ্রুপের সদস্যদের রিকারসিভভাবে কপি করে নতুন গ্রুপে যোগ করতে:
Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $_}
উইন্ডোজ ২০১৬ ফরেস্ট স্কিমা বা তার পরবর্তীতে অ্যাক্টিভ ডিরেক্টরিতে টেম্পোরারি (সময়-ভিত্তিক) গ্রুপ সদস্যতা ফিচার ব্যবহার করতে পারেন। একটি ব্যবহারকারীকে অস্থায়ীভাবে AD গ্রুপে যোগ করতে (যেমন ১ ঘণ্টার জন্য):
$ttl = New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ttl
১ ঘণ্টার পর এই ব্যবহারকারী otomatikভাবে এই সিকিউরিটি গ্রুপ থেকে সরানো হবে।
Remove-ADGroupMember: পাওয়ারশেল দিয়ে AD গ্রুপ থেকে ব্যবহারকারী সরানো
AD গ্রুপ থেকে ব্যবহারকারী সরাতে Remove-ADGroupMember কম্ডলেট ব্যবহার করুন। গ্রুপ থেকে দুজন ব্যবহারকারী সরান:
Remove-ADGroupMember -Identity TestADGroup -Members user1, user2
ব্যবহারকারী সরানোর নিশ্চিতকরণ দিন।
CSV ফাইল থেকে ব্যবহারকারীদের তালিকা অনুযায়ী গ্রুপ থেকে সরাতে:
Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}
অন-প্রিমাইস অ্যাক্টিভ ডিরেক্টরিতে ডাইনামিক ব্যবহারকারী গ্রুপ ব্যবহার করা যায় না (Azure AD-এর বিপরীতে)। তবে, আপনি একটি শিডিউল্ড পাওয়ারশেল স্ক্রিপ্ট তৈরি করতে পারেন যা Add-ADGroupMember এবং Remove-ADGroupMember কম্ডলেট ব্যবহার করে স্বয়ংক্রিয়ভাবে ব্যবহারকারী গ্রুপে যোগ বা বাদ দেবে।
Get-ADGroup দিয়ে অ্যাক্টিভ ডিরেক্টরি গ্রুপ খুঁজে বের করা
Get-ADGroup কম্ডলেট AD ডোমেন গ্রুপ সম্পর্কে তথ্য পেতে সাহায্য করে:
Get-ADGroup 'TestADGroup'
এই কমান্ড গ্রুপের প্রধান অ্যাট্রিবিউট (DN, গ্রুপ টাইপ, নাম, SID) সম্পর্কে তথ্য দেখায়। সব গ্রুপ অ্যাট্রিবিউটের মান দেখতে:
Get-ADGroup 'TestADGroup' -properties *
Get-ADGroup ব্যবহার করে প্যাটার্ন অনুযায়ী AD-এ গ্রুপ খুঁজে বের করতে পারেন। উদাহরণস্বরূপ, নামে admins ф্রেজ ধারণকারী সব AD গ্রুপ খুঁজতে:
Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table
অথবা:
Get-ADGroup -Filter {name -like "*admins*"} -Properties Description,info | Select Name,samaccountname,Description,info
Get-ADGroup ব্যবহার করে গ্রুপ সদস্যদের তালিকা পেতে পারেন (members অ্যাট্রিবিউটে সংরক্ষিত):
Get-ADGroup -Identity "Domain Admins" -Properties members | Select-Object -ExpandProperty members
তবে, গ্রুপ সদস্যতা পেতে Get-ADGroupMember কম্ডলেট ব্যবহার করা অনেক বেশি সুবিধাজনক।
Get-ADGroupMember: অ্যাক্টিভ ডিরেক্টরি গ্রুপ সদস্যদের তালিকা পাওয়া এবং এক্সপোর্ট করা
Get-ADGroupMember কম্ডলেট AD গ্রুপের সদস্যদের তালিকা পেতে দেয়। এগুলো ব্যবহারকারী, কম্পিউটার, অন্যান্য গ্রুপ বা ম্যানেজড সার্ভিস অ্যাকাউন্ট (MSA/gMSA) হতে পারে।
Get-ADGroupMember 'TestADGroup'
শুধু ব্যবহারকারীর নাম দেখতে:
Get-ADGroupMember 'TestADGroup'| ft name
যদি গ্রুপে অন্যান্য ডোমেন গ্রুপ থাকে, তবে সমস্ত নেস্টেড গ্রুপসহ পূর্ণ সদস্যদের তালিকা দেখতে Recursive প্যারামিটার ব্যবহার করুন:
Get-ADGroupMember ADadmins -recursive| ft name
নির্দিষ্ট গ্রুপের সদস্য অ্যাকাউন্টের তালিকা CSV ফাইলে এক্সপোর্ট করতে (এক্সেলে ব্যবহার করার জন্য):
Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:\PS\ADadminsList.csv
গ্রুপে ব্যবহারকারীদের বিস্তারিত তথ্য টেক্সট ফাইলে এক্সপোর্ট করতে পারেন। Get-ADUser কম্ডলেট ব্যবহার করে ব্যবহারকারীর এক্সটেন্ডেড অ্যাট্রিবিউট পাওয়া যায়। উদাহরণস্বরূপ, একাউন্ট নামের পাশাপাশি UserPrincipalName, পদবী এবং ফোন নম্বর দেখাতে:
Get-ADGroupMember -Identity ADadmins -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }
গ্রুপে ব্যবহারকারীর সংখ্যা গণনা করতে:
(Get-ADGroupMember -Identity 'domain admins').Count
নির্দিষ্ট OU-তে খালি গ্রুপের তালিকা পেতে:
Get-ADGroup -Filter * -Properties Members -searchbase “OU=NY,OU-US,DC=corp,dc=woshub,DC=com” | where {-not $_.members} | select Name
Get-ADGroupMember কম্ডলেট ব্যবহার করে একটি সাধারণ পাওয়ারশেল স্ক্রিপ্ট তৈরি করা যায় যা কোনো নির্দিষ্ট AD গ্রুপে নতুন ব্যবহারকারী যোগ হলে অ্যাডমিনিস্ট্রেটরকে অবহিত করবে।
Set-ADGroup: অ্যাক্টিভ ডিরেক্টরি গ্রুপ অ্যাট্রিবিউট পরিবর্তন করা
Set-ADGroup কম্ডলেট যেকোনো অ্যাক্টিভ ডিরেক্টরি গ্রুপের বৈশিষ্ট্য (অ্যাট্রিবিউট) পরিবর্তন করতে দেয়। উদাহরণস্বরূপ, গ্রুপের বর্ণনা এবং নাম পরিবর্তন করুন:
Set-ADGroup -Identity MunAdmins -Description “Munich Admins Group”
অথবা:
Get-ADGroup -Identity MunAdmins | Set-ADGroup -Description “Munich Admins Group”
এক্সচেঞ্জ GAL থেকে নির্দিষ্ট গ্রুপ লুকান:
Set-ADGroup –id MunAdmins -replace @{hideDLMembership=$true}
একসাথে একাধিক গ্রুপ অ্যাট্রিবিউট পরিবর্তন করতে হ্যাশটেবিল ব্যবহার করা সুবিধাজনক:
$attrs = @{"mail"="munadmins@woshub.com";"displayname"="ALL MUN Admins"}
Set-ADGroup -Identity MunAdmins –Add $attrs
AD গ্রুপ অ্যাট্রিবিউটের তালিকা get-adgroup munadmins -Properties * বা ADUC কনসোলের Attributes Editor ট্যাব থেকে পাওয়া যায়।
Remove-ADGroup: পাওয়ারশেল দিয়ে অ্যাক্টিভ ডিরেক্টরিতে গ্রুপ মুছে ফেলা
অ্যাক্টিভ ডিরেক্টরিতে গ্রুপ মুছে ফেলতে Remove-ADGroup কম্ডলেট ব্যবহার করুন:
Remove-ADGroup -Identity MunSales
গ্রুপ মুছতে সময় নিশ্চিতকরণ চায়। নিশ্চিতকরণ বন্ধ করতে Confirm স্যুইচ যোগ করুন:
Remove-ADGroup -Identity MunSales –Confirm:$false
মুছে ফেলা গ্রুপ (এবং অন্যান্য AD অবজেক্ট) অ্যাক্টিভ ডিরেক্টরি রিসাইকেল বিন থেকে ফিরিয়ে আনা যায়:
Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose