Active Directory Users and Computer (ADUC) ग्राफिकल स्नैप-इन Active Directory में सुरक्षा ग्रुप्स प्रबंधित करने का एकमात्र टूल नहीं है। आप अपने Active Directory डोमेन में उपयोगकर्ता ग्रुप्स के दिन-प्रतिदिन प्रबंधन के लिए सरल PowerShell कमांड्स का उपयोग कर सकते हैं। इस लेख में, हम देखेंगे कि AD में एक नया ग्रुप बनाने, उपयोगकर्ताओं को इसमें जोड़ने (या हटाने), ग्रुप उपयोगकर्ताओं की सूची प्रदर्शित/निर्यात करने, और AD ग्रुप्स प्रशासित करते समय अक्सर उपयोग किए जाने वाले अन्य उपयोगी कमांड्स के लिए PowerShell का उपयोग कैसे करें।
AD ग्रुप्स प्रबंधित करने के लिए, आप Windows PowerShell के लिए Active Directory Module का उपयोग कर सकते हैं। RSAT-AD-PowerShell मॉड्यूल Windows Server के सभी संस्करणों में उपलब्ध है (Windows Server 2008R2 से शुरू), और इसे Windows 10 और Windows 11 डेस्कटॉप पर RSAT फीचर के रूप में इंस्टॉल किया जा सकता है।
जांचें कि क्या AD मॉड्यूल वर्तमान PowerShell सत्र में लोड है:
Get-Module -Listavailable
जैसा कि आप देख सकते हैं, ActiveDirectory मॉड्यूल लोड है। यदि नहीं, तो इसे इस कमांड का उपयोग करके इम्पोर्ट करें:
Import-Module ActiveDirectory
आइए उन PowerShell cmdlets को सूचीबद्ध करें जो AD ग्रुप्स प्रबंधित करने की अनुमति देते हैं:
Get-Command -Module ActiveDirectory -Name "*Group*"
11 cmdlets उपलब्ध हैं:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
New-ADGroup: PowerShell के साथ नया AD ग्रुप बनाना
निर्दिष्ट Active Directory कंटेनर (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 अनुमतियां देने के लिए किया जा सकता है। Exchange डिस्ट्रीब्यूशन ग्रुप्स के बारे में यहाँ और जानें।
AD ग्रुप बनाते समय, आप किसी भी एट्रिब्यूट को भर सकते हैं। विभिन्न ग्रुप एट्रिब्यूट्स के मान सेट करने का सबसे आसान तरीका हैशटेबल के माध्यम से है:
$attrs = @{"mail"="mundmins@woshub.com";"displayname"="ALL Munich Admins"}
New-ADGroup -Name MUNAdmins -GroupScope Global -OtherAttributes $attrs
Add-AdGroupMember के माध्यम से Active Directory में उपयोगकर्ता जोड़ना
आप Add-AdGroupMember cmdlet का उपयोग करके Active Directory ग्रुप में उपयोगकर्ताओं को जोड़ सकते हैं। आइए नए ग्रुप में दो उपयोगकर्ता जोड़ें:
Add-AdGroupMember -Identity TestADGroup -Members user1, user2
यदि आपको एक साथ बड़ी संख्या में उपयोगकर्ताओं को ग्रुप में जोड़ने की आवश्यकता है, तो आप उपयोगकर्ता नामों की सूची को CSV फ़ाइल में सहेज सकते हैं, फिर इस फ़ाइल को PowerShell में इम्पोर्ट कर सकते हैं और एक साधारण PowerShell स्क्रिप्ट का उपयोग करके प्रत्येक उपयोगकर्ता को ग्रुप में जोड़ सकते हैं।
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 $_}
पिछले लेख में, हमने एक PowerShell स्क्रिप्ट दिखाई थी जो एक उपयोगकर्ता से AD ग्रुप सदस्यता कॉपी करने और दूसरे को उन्हीं ग्रुप्स की सूची में जोड़ने की अनुमति देती है।
आप Windows2016Forest स्कीमा और नए के साथ Active Directory में अस्थायी (समय-आधारित) ग्रुप सदस्यता फीचर का उपयोग कर सकते हैं। एक उपयोगकर्ता को अस्थायी रूप से AD ग्रुप में जोड़ने के लिए (उदाहरण के लिए, 1 घंटे के लिए), कमांड चलाएं:
$ttl = New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ttl
एक घंटे बाद, यह उपयोगकर्ता इस सुरक्षा ग्रुप से स्वचालित रूप से हटा दिया जाएगा।
Remove-ADGroupMember: PowerShell के साथ AD ग्रुप से उपयोगकर्ता हटाना
AD ग्रुप से उपयोगकर्ताओं को हटाने के लिए, Remove-ADGroupMember cmdlet का उपयोग करें। आइए ग्रुप से दो उपयोगकर्ताओं को हटाएं:
Remove-ADGroupMember -Identity TestADGroup -Members user1, user2
उपयोगकर्ता हटाने की पुष्टि करें।
यदि आपको CSV फ़ाइल से उपयोगकर्ताओं की सूची के अनुसार ग्रुप से उपयोगकर्ताओं को हटाने की आवश्यकता है, तो इस कमांड का उपयोग करें:
Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}
आप ऑन-प्रिमाइसेस Active Directory में डायनामिक उपयोगकर्ता ग्रुप्स का उपयोग नहीं कर सकते (Azure AD के विपरीत)। हालाँकि, आप एक शेड्यूल्ड PowerShell स्क्रिप्ट बना सकते हैं जो Add-ADGroupMember और Remove-ADGroupMember cmdlets का उपयोग करके स्वचालित रूप से उपयोगकर्ताओं को ग्रुप में जोड़ेगी या हटाएगी। PowerShell के साथ Active Directory में डायनामिक उपयोगकर्ता ग्रुप्स बनाने के बारे में और जानें।
Get-ADGroup के साथ Active Directory ग्रुप्स ढूंढना
The Get-ADGroup cmdlet आपको AD डोमेन ग्रुप के बारे में जानकारी प्राप्त करने में मदद करेगा:
Get-ADGroup 'TestADGroup'
यह कमांड ग्रुप के मुख्य एट्रिब्यूट्स (DN, ग्रुप टाइप, नाम, SID) के बारे में जानकारी प्रदर्शित करता है। सभी ग्रुप एट्रिब्यूट्स के मान प्रदर्शित करने के लिए, निम्न कमांड चलाएं:
Get-ADGroup 'TestADGroup' -properties *
जैसा कि आप देख सकते हैं, ग्रुप निर्माण और संशोधन का समय, विवरण, आदि जैसे एट्रिब्यूट्स अब प्रदर्शित होते हैं।
आप Get-ADGroup cmdlet का उपयोग करके पैटर्न द्वारा AD में ग्रुप्स खोज सकते हैं। उदाहरण के लिए, निम्न कमांड्स का उपयोग उन सभी AD ग्रुप्स को खोजने के लिए किया जा सकता है जिनके नाम में वाक्यांश admins है:
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 cmdlet का उपयोग करके ग्रुप सदस्यता प्राप्त करना कहीं अधिक सुविधाजनक है।
Get-ADGroupMember: Active Directory ग्रुप सदस्यों को कैसे प्राप्त और निर्यात करें?
Get-ADGroupMember cmdlet आपको AD ग्रुप के सदस्य प्राप्त करने देता है। ये उपयोगकर्ता, कंप्यूटर, अन्य ग्रुप्स, या मैनेज्ड सर्विस अकाउंट्स (MSA/gMSA) हो सकते हैं।
Get-ADGroupMember 'TestADGroup'
परिणामों में केवल उपयोगकर्ता नाम प्रदर्शित करने के लिए, चलाएं:
Get-ADGroupMember 'TestADGroup'| ft name
यदि इस ग्रुप में अन्य डोमेन ग्रुप्स शामिल हैं, तो सभी नेस्टेड ग्रुप्स सहित सदस्यों की पूरी सूची प्रदर्शित करने के लिए Recursive पैरामीटर का उपयोग करें।
Get-ADGroupMember ADadmins -recursive| ft name
किसी विशिष्ट ग्रुप के सदस्य होने वाले अकाउंट्स की सूची को CSV फ़ाइल में निर्यात करने के लिए (Excel में आगे उपयोग के लिए), निम्न कमांड चलाएं:
Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:\PS\ADadminsList.csv
आप ग्रुप में उपयोगकर्ताओं के बारे में जानकारी टेक्स्ट फ़ाइल में निर्यात कर सकते हैं। Get-ADUser cmdlet का उपयोग उपयोगकर्ता के विस्तारित एट्रिब्यूट्स प्राप्त करने के लिए किया जाता है। उदाहरण के लिए, अकाउंट नाम के अलावा, आप ग्रुप उपयोगकर्ताओं का 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 cmdlet का उपयोग एक साधारण PowerShell स्क्रिप्ट बनाने के लिए किया जा सकता है जो एडमिनिस्ट्रेटर को सूचित करती है कि किसी ने किसी विशिष्ट AD ग्रुप में नया उपयोगकर्ता जोड़ा है।
Set-ADGroup: Active Directory ग्रुप एट्रिब्यूट्स संशोधित करना
Set-ADGroup cmdlet आपको किसी भी Active Directory ग्रुप के गुण (एट्रिब्यूट्स) बदलने देता है। उदाहरण के लिए, आप ग्रुप का विवरण और नाम बदल सकते हैं:
Set-ADGroup -Identity MunAdmins -Description “Munich Admins Group”
या:
Get-ADGroup -Identity MunAdmins | Set-ADGroup -Description “Munich Admins Group”
Exchange GAL से किसी विशिष्ट ग्रुप को छिपाएं:
Set-ADGroup –id MunAdmins -replace @{hideDLMembership=$true}
आप एक साथ कई ग्रुप एट्रिब्यूट्स बदल सकते हैं। परिवर्तनों की सूची सेट करने के लिए HashTable का उपयोग करना सुविधाजनक है:
$attrs = @{"mail"="munadmins@woshub.com";"displayname"="ALL MUN Admins"}
Set-ADGroup -Identity MunAdmins –Add $attrs
आप get-adgroup munadmins -Properties * या ADUC कंसोल में Attributes Editor टैब से AD ग्रुप एट्रिब्यूट्स की सूची प्राप्त कर सकते हैं।
Remove-ADGroup: PowerShell का उपयोग करके Active Directory में ग्रुप कैसे हटाएं?
Active Directory में ग्रुप्स हटाने के लिए, Remove-ADGroup cmdlet का उपयोग करें:
Remove-ADGroup -Identity MunSales
ग्रुप हटाते समय, आपको हटाने की पुष्टि करने के लिए कहा जाता है। पुष्टि अक्षम करने के लिए, Confirm स्विच जोड़ें:
Remove-ADGroup -Identity MunSales –Confirm:$false
हटाए गए ग्रुप्स (और अन्य AD ऑब्जेक्ट्स) को Active Directory Recycle Bin से पुनर्स्थापित किया जा सकता है:
Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose