Windows PowerShell के लिए Active Directory मॉड्यूल डोमेन प्रशासन, Active Directory में ऑब्जेक्ट प्रबंधन और AD कंप्यूटर, उपयोगकर्ता, समूह आदि के बारे में विभिन्न जानकारी प्राप्त करने के लिए मुख्य उपकरणों में से एक है। प्रत्येक Windows व्यवस्थापक को AD ग्राफिक स्नैप-इन (आमतौर पर ADUC - Active Directory Users & Computers) और RSAT-AD-PowerShell मॉड्यूल के cmdlets दोनों का उपयोग करना आना चाहिए ताकि दैनिक Active Directory प्रशासन कार्य किए जा सकें। इस लेख में हम देखेंगे कि Windows पर PowerShell Active Directory मॉड्यूल कैसे इंस्टॉल करें, इसकी बुनियादी विशेषताओं और लोकप्रिय cmdlets की खोज करें जो AD को प्रबंधित करने और उसके साथ इंटरैक्ट करने के लिए उपयोगी हैं।
Windows Server पर PowerShell Active Directory मॉड्यूल इंस्टॉल करना
Windows PowerShell के लिए Active Directory, Windows Server ऑपरेटिंग सिस्टम में पहले से ही बिल्ट-इन होता है (Windows Server 2008 R2 से शुरू होकर), लेकिन यह डिफ़ॉल्ट रूप से सक्षम नहीं होता।
Windows Server 2016 पर, आप सर्वर मैनेजर से AD PowerShell मॉड्यूल इंस्टॉल कर सकते हैं (Add Roles and Features → Features → Remote Server Administration Tools → Role Administration Tools → AD DS and AD LDS Tools → Active Directory module for Windows PowerShell)।

आप PowerShell कंसोल से निम्न कमांड का उपयोग करके भी मॉड्यूल इंस्टॉल कर सकते हैं:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature

RSAT-AD-PowerShell को न केवल डोमेन कंट्रोलर पर, बल्कि किसी भी डोमेन सदस्य सर्वर या वर्कस्टेशन पर भी इंस्टॉल किया जा सकता है। जब आप Active Directory Domain Services (AD DS) भूमिका तैनात करते हैं (सर्वर को AD डोमेन कंट्रोलर के रूप में प्रमोट करते हैं), तो PowerShell Active Directory मॉड्यूल स्वचालित रूप से इंस्टॉल हो जाता है।
यह मॉड्यूल Active Directory वेब सेवा के माध्यम से AD के साथ इंटरैक्ट करता है जिसे आपके डोमेन कंट्रोलर पर इंस्टॉल किया जाना चाहिए (संचार TCP पोर्ट 9389 पर होता है)।
Windows 10 पर PowerShell Active Directory मॉड्यूल कैसे इंस्टॉल करें?
आप RSAT-AD-PowerShell मॉड्यूल को न केवल Windows Server पर, बल्कि अपनी वर्कस्टेशन पर भी इंस्टॉल कर सकते हैं। यह मॉड्यूल RSAT (Remote Server Administration Tools) पैकेज का हिस्सा है जिसे आप Windows 7, Windows 8.1 पर मैन्युअली डाउनलोड और इंस्टॉल कर सकते हैं। RSAT इंस्टॉल करने के बाद, आप Control Panel (Control Panel → Programs and Features → Turn Windows features on or off → Remote Server Administration Tools → Role Administration Tools → AD DS and AD LDS Tools) से PowerShell के लिए Active Directory मॉड्यूल इंस्टॉल कर सकते हैं।

Windows 10 बिल्ड 1809 या नए पर RSAT पैकेज Windows इमेज में एकीकृत होता है (Features on Demand के रूप में), इसलिए आप Active Directory मॉड्यूल इंस्टॉल करने के लिए इस PowerShell कमांड का उपयोग कर सकते हैं:
Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”
RSAT इंस्टॉल किए बिना Windows 10 पर PowerShell ActiveDirectory मॉड्यूल तैनात करने का एक तरीका भी है।
Active Directory PowerShell Cmdlets
Windows PowerShell के लिए Active Directory मॉड्यूल में AD के साथ इंटरैक्ट करने के लिए बहुत सारे cmdlets हैं। RSAT का प्रत्येक नया संस्करण पिछले संस्करण की तुलना में अधिक cmdlets रखता है। Windows Server 2016 में Active Directory के लिए 147 PowerShell cmdlets उपलब्ध हैं।
Active Directory मॉड्यूल के cmdlets का उपयोग करने से पहले, आपको इसे अपने PowerShell सत्र में आयात करना होगा (Windows Server 2012 R2 / Windows 8.1 और नए पर मॉड्यूल स्वचालित रूप से आयात हो जाता है)।
Import-Module ActiveDirectory
यदि आपके कंप्यूटर पर Active Directory मॉड्यूल इंस्टॉल नहीं है, तो आप इसे अपने डोमेन कंट्रोलर से आयात कर सकते हैं (इसके लिए आपको डोमेन एडमिनिस्ट्रेटर विशेषाधिकारों की आवश्यकता होगी) या किसी अन्य डेस्कटॉप कंप्यूटर से:
$psSess = New-PSSession -ComputerName DC_or_Comp_with_ADPoSh_installed
Import-Module -PSsession $psSess -Name ActiveDirectory
आप निम्न कमांड का उपयोग करके Active Directory के सभी उपलब्ध cmdlets की पूरी सूची देख सकते हैं:
Get-Command –module ActiveDirectory
AD मॉड्यूल में cmdlets की कुल संख्या:
Get-Command –module ActiveDirectory |measure-object|select count

अधिकांश RSAT-AD-PowerShell cmdlets Get-, Set- या New- उपसर्ग से शुरू होते हैं।
- Get - क्लास cmdlets Active Directory से विभिन्न जानकारी प्राप्त करने के लिए उपयोग किए जाते हैं (Get-ADUser — उपयोगकर्ता गुण, Get-ADComputer – कंप्यूटर सेटिंग्स, Get-ADGroupMember — समूह सदस्यता, आदि)। इन्हें चलाने के लिए आपको डोमेन एडमिन होने की आवश्यकता नहीं है। कोई भी डोमेन उपयोगकर्ता AD ऑब्जेक्ट विशेषताओं के मान प्राप्त करने के लिए PowerShell कमांड चला सकता है (गोपनीय को छोड़कर, जैसे LAPS के उदाहरण में);
- Set- क्लास cmdlets Active Directory में ऑब्जेक्ट सेटिंग्स सेट (बदलने) के लिए उपयोग किए जाते हैं। उदाहरण के लिए, आप उपयोगकर्ता गुण बदल सकते हैं (Set-ADUser), कंप्यूटर सेटिंग्स (Set-ADComputer), किसी उपयोगकर्ता को समूह में जोड़ सकते हैं, आदि। ऐसा करने के लिए, आपके खाते में ऑब्जेक्ट गुणों को संशोधित करने की अनुमति होनी चाहिए (लेख देखें: Active Directory में एडमिनिस्ट्रेटर विशेषाधिकारों को कैसे सौंपें);
- New- से शुरू होने वाली कमांड आपको AD ऑब्जेक्ट बनाने की अनुमति देती हैं (उपयोगकर्ता बनाएं — New-ADUser, समूह बनाएं — New-ADGroup);
- Remove- cmdlets AD ऑब्जेक्ट हटाने के लिए उपयोग किए जाते हैं।
किसी भी cmdlet पर सहायता प्राप्त करने का तरीका यहां दिया गया है:
get-help Set-ADUser

आप Active Directory cmdlets के उपयोग के उदाहरण इस प्रकार प्रदर्शित कर सकते हैं:
(get-help New-ADComputer).examples
PowerShell ISE में cmdlet पैरामीटर टाइप करते समय पॉप-अप संकेतों का उपयोग करना सुविधाजनक होता है।

RSAT-AD-PowerShell मॉड्यूल के साथ Active Directory प्रशासन
आइए एक प्रशासक के कुछ विशिष्ट कार्यों को देखें जिन्हें आप Active Directory के लिए PowerShell cmdlets का उपयोग करके कर सकते हैं।
आप WOSHub वेबसाइट पर AD के लिए PowerShell cmdlets का उपयोग करने के कुछ उपयोगी उदाहरण पा सकते हैं। विस्तृत निर्देशों के लिए लिंक का अनुसरण करें।
New-ADUser: AD उपयोगकर्ता बनाना
नया AD उपयोगकर्ता बनाने के लिए, आप New-ADUser cmdlet का उपयोग कर सकते हैं। आप निम्न कमांड से उपयोगकर्ता बना सकते हैं:
New-ADUser -Name "Mila Beck" -GivenName "Mila" -Surname "Beck" -SamAccountName "mbeck" -UserPrincipalName "mbeck@woshub.com" -Path "OU=Users,OU=Berlin,OU=DE,DC=woshub,DC=com" -AccountPassword(Read-Host -AsSecureString "Input User Password") -Enabled $true
New-ADUser cmdlet के बारे में विस्तृत जानकारी के लिए (बल्क में उपयोगकर्ता डोमेन खाते बनाने के उदाहरण सहित), यह लेख देखें।
Get-ADComputer: कंप्यूटर गुण प्राप्त करना
विशिष्ट OU में कंप्यूटर गुणों के बारे में जानकारी प्रदर्शित करने के लिए (कंप्यूटर नाम और अंतिम लॉगऑन तिथि), Get-ADComputer cmdlet का उपयोग करें:
Get-ADComputer -SearchBase ‘OU=CA,OU=USA,DC=woshub,DC=com’ -Filter * -Properties * | FT Name, LastLogonDate -Autosize
Add-AdGroupMember: AD उपयोगकर्ता को समूहों में जोड़ना
अपने AD डोमेन में किसी मौजूदा सुरक्षा समूह में उपयोगकर्ताओं को जोड़ने के लिए, यह कमांड चलाएं:
Add-AdGroupMember -Identity LondonSales -Members e.braun, l.wolf
AD समूह में उपयोगकर्ताओं की सूची प्रदर्शित करें और इसे CSV फ़ाइल में निर्यात करें:
Get-ADGroupMember LondonSales -recursive| ft samaccountname| Out-File c:\ps\export_ad_users.csv
PowerShell से AD समूह प्रबंधित करने के बारे में अधिक जानें।
Set-ADAccountPassword: AD में उपयोगकर्ता पासवर्ड रीसेट करना
PowerShell से AD उपयोगकर्ता पासवर्ड रीसेट करने के लिए, निम्न कमांड चलाएं:
Set-ADAccountPassword m.lorenz -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “Ne8Pa$$0rd1” -Force -Verbose) –PassThru
AD खाते को अनलॉक, सक्षम और अक्षम कैसे करें?
AD उपयोगकर्ता खाते को अक्षम करने के लिए:
Disable-ADAccount m.lorenz
खाते को सक्षम करने के लिए:
Enable-ADAccount m.lorenz
डोमेन पासवर्ड नीति द्वारा ब्लॉक किए जाने के बाद खाते को अनलॉक करने के लिए:
Unlock-ADAccount m.lorenz
Search-ADAccount: निष्क्रिय और अक्षम ऑब्जेक्ट कैसे खोजें?
AD डोमेन में उन सभी कंप्यूटरों को खोजने और अक्षम करने के लिए जो 90 दिनों से अधिक समय से लॉग ऑन नहीं हुए हैं, Search-ADAccount cmdlet का उपयोग करें:
$timespan = New-Timespan –Days 90
Search-ADAccount -AccountInactive -ComputersOnly –TimeSpan $timespan | Disable-ADAccount
New-ADOrganizationalUnit: AD में संगठनात्मक इकाई बनाना
AD में एक विशिष्ट संगठनात्मक इकाई संरचना तेजी से बनाने के लिए, आप PowerShell स्क्रिप्ट का उपयोग कर सकते हैं। मान लीजिए आप कई OUs बनाना चाहते हैं जिनके नाम राज्य हों और उनमें विशिष्ट ऑब्जेक्ट कंटेनर बनाना चाहते हैं। ग्राफिकल ADUC स्नैप-इन के माध्यम से इस AD संरचना को मैन्युअली बनाना काफी समय लेने वाला है। PowerShell के लिए AD मॉड्यूल इसे सेकंड में करने की अनुमति देता है (स्क्रिप्ट लिखने में लगने वाले समय को छोड़कर):
$fqdn = Get-ADDomain
$fulldomain = $fqdn.DNSRoot
$domain = $fulldomain.split(".")
$Dom = $domain[0]
$Ext = $domain[1]
$Sites = ("Nevada","Texas","California","Florida")
$Services = ("Users","Admins","Computers","Servers","Contacts","Service Accounts")
$FirstOU ="USA"
New-ADOrganizationalUnit -Name $FirstOU -Description $FirstOU -Path "DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($S in $Sites)
{
New-ADOrganizationalUnit -Name $S -Description "$S" -Path "OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($Serv in $Services)
{
New-ADOrganizationalUnit -Name $Serv -Description "$S $Serv" -Path "OU=$S,OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
}
}
स्क्रिप्ट चलाने के बाद, Active Directory में निम्न OU संरचना दिखाई देती है।

AD कंटेनरों के बीच ऑब्जेक्ट ले जाने के लिए, आप Move-ADObject cmdlet का उपयोग कर सकते हैं:
$TargetOU = "OU=Sales,OU=Computers,DC=woshub,DC=com"
Get-ADComputer -Filter 'Name -like "SalesPC*"' | Move-ADObject -TargetPath $TargetOU
Get-ADReplicationFailure: AD प्रतिकृति विफलताओं की जांच
Get-ADReplicationFailure cmdlet का उपयोग करके आप AD डोमेन कंट्रोलर के बीच प्रतिकृति की स्थिति की जांच कर सकते हैं:
Get-ADReplicationFailure -Target NY-DC01,NY-DC02
डोमेन में सभी DCs के बारे में जानकारी प्राप्त करने के लिए, Get-AdDomainController cmdlet का उपयोग करें:
Get-ADDomainController –filter * | select hostname,IPv4Address,IsGlobalCatalog,IsReadOnly,OperatingSystem | format-table –auto

तो, हमने AD डोमेन प्रशासन के लिए Active Directory PowerShell मॉड्यूल की बुनियादी विशेषताओं पर विचार किया। मुझे आशा है कि यह आपको मॉड्यूल की अन्य विशेषताओं का पता लगाने और अधिकांश AD प्रबंधन कार्यों को स्वचालित करने के लिए प्रोत्साहित करेगा।