Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell के साथ Active Directory ग्रुप्स प्रबंधित करना

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
  1. Active Directory डोमेन नाम कैसे बदलें? Active Directory डोमेन नाम कैसे बदलें?

    इस संक्षिप्त लेख में, हम आपको दिखाएंगे कि Active Directory डोमेन नाम को test.com से resource.loc में सही तरीके से कैसे बदलें। वास्तव में, Active Directory डोमेन का नाम बदलना सबसे अच्छा विचार नहीं है। बड़े और जटिल AD इंफ्रास्ट्रक्चर में, यूजर्स, कंप्यूटर्स, और सर्वर्स को नए डोमेन में माइग्रेट करना बे

  1. RSAT इंस्टॉल किए बिना पावरशेल एक्टिव डायरेक्टरी मॉड्यूल तैनात करें RSAT इंस्टॉल किए बिना पावरशेल एक्टिव डायरेक्टरी मॉड्यूल तैनात करें

    पिछले लेखों में से एक में हमने दिखाया कि GPO लॉगऑन स्क्रिप्ट में Set-ADComputer cmdlet का उपयोग करके वर्तमान लॉग इन उपयोगकर्ता जानकारी को प्रत्येक AD कंप्यूटर ऑब्जेक्ट के गुणों में कैसे सहेजा जाए। टिप्पणीकारों में से एक ने उचित रूप से उल्लेख किया कि ऐसा करने के लिए, आपको सभी उपयोगकर्ता कंप्यूटरों पर

  1. PowerShell का उपयोग करके Excel फ़ाइल से डेटा पढ़ना और लिखना PowerShell का उपयोग करके Excel फ़ाइल से डेटा पढ़ना और लिखना

    इस लेख में हम दिखाएंगे कि PowerShell स्क्रिप्ट से सीधे Excel वर्कशीट से डेटा कैसे पढ़ें और लिखें। आप कंप्यूटर, सर्वर, इन्फ्रास्ट्रक्चर, Active Directory आदि पर इन्वेंट्री और विभिन्न रिपोर्ट जनरेट करने के लिए PowerShell के साथ Excel का उपयोग कर सकते हैं। PowerShell का उपयोग करके Excel स्प्रेडशीट से