सवाल Windows सक्रिय निर्देशिका समूह में उपयोगकर्ताओं को सूचीबद्ध करने के लिए कमांड लाइन?


क्या किसी विशेष सक्रिय निर्देशिका समूह में सभी उपयोगकर्ताओं को सूचीबद्ध करने के लिए कोई कमांड लाइन तरीका है?

मैं देख सकता हूं कि समूह में कौन जा रहा है कंप्यूटर प्रबंधित करें -> स्थानीय उपयोगकर्ता / समूह -> समूह और समूह पर डबल क्लिक करें।

मुझे डेटा पुनर्प्राप्त करने के लिए बस एक कमांड लाइन तरीका चाहिए, इसलिए मैं कुछ अन्य स्वचालित कार्य कर सकता हूं।


123
2017-08-03 17:19


मूल




जवाब:


प्रयत्न

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members

37
2017-08-03 17:22



सदस्यों को हल करने और नेस्टेड समूहों में डुप्लिकेट सदस्यों को हल करने के लिए आपको शायद थोड़ा और करने की आवश्यकता है। - duffbeer703
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand आपको नेस्टेड समूहों में सदस्य मिलते हैं, हालांकि यह डुप्लिकेट के साथ मदद नहीं कर सकता है, और यह आपको सदस्य के लिए पूर्ण एडी क्वेरी स्ट्रिंग देता है, न केवल उनके सीएन। - jonnybot
विन 7 एसपी 1 पर कमांड नहीं मिला। मुझे लगता है कि आपको आरएसएटी स्थापित करने की आवश्यकता है? - Iszi
'dsget' को आंतरिक या बाहरी कमांड आदि के रूप में पहचाना नहीं गया है .. - adolf garlic
@adolfgarlic - stackoverflow.com/questions/8514599/... - bchilders


कमांड प्रॉम्प्ट से एक और तरीका यहां है, यह सुनिश्चित न करें कि आउटपुट को पार्स करने के बाद से स्वचालित कैसे हो सकता है:

यदि समूह "वैश्विक सुरक्षा समूह" है:

net group <your_groupname> /domain

यदि आप "डोमेन स्थानीय सुरक्षा समूह" की तलाश में हैं:

net localgroup <your_groupname> /domain

207
2018-01-04 20:11



यह सुनिश्चित नहीं है कि यह क्यों कम किया गया था ... आउटपुट को थोड़ा पार्सिंग की आवश्यकता हो सकती है, लेकिन इसका उपयोग केवल उन सुविधाओं पर निर्भर करता है जो मूल विंडोज़ इंस्टॉलेशन का हिस्सा हैं। - G-Wiz
लेकिन क्या संक्षिप्त समूह के नामों के आसपास कोई रास्ता है? - deed02392
यह भी खूब रही! एक इलाज किया। - WOPR
ध्यान दें कि यह रिकर्सिव नहीं है और समूह में मौजूद समूहों को सूचीबद्ध नहीं करता है। यदि आपके पास घोंसला या पदानुक्रमित समूह हैं तो बहुत उपयोगी नहीं है। - Mark
यह मेरे लिए पूरी तरह से काम करता है (और अच्छी तरह हाथ से हाथ में चला जाता है net user /domain)। धन्यवाद! - xan


यहां डीएस कमांड का एक संस्करण दिया गया है जो मुझे अधिक आम तौर पर उपयोगी पाया जाता है, खासकर यदि आपके पास जटिल ओयू संरचना है और समूह के पूर्ण प्रतिष्ठित नाम को जरूरी नहीं जानते हैं।

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

या यदि आप समूह के सीएन को जानते हैं, आमतौर पर एसएएम आईडी के समान, नाम में रिक्त स्थान होने पर उद्धृत:

dsquery group -name "Group Account Name" | dsget group -members -expand

जैसा कि टिप्पणियों में बताया गया है, डिफ़ॉल्ट रूप से डीएस * कमांड (dsquery, dsget, dsadd, dsrm) केवल डोमेन नियंत्रक पर उपलब्ध हैं। हालांकि, आप Windows Server स्थापना मीडिया पर समर्थन उपकरण से व्यवस्थापक उपकरण पैक स्थापित कर सकते हैं या डाउनलोड करो माइक्रोसॉफ्ट डाउनलोड साइट से।

आप PowerShell का उपयोग करके इन प्रश्नों को भी कर सकते हैं। PowerShell पहले से ही सर्वर 2008, 2008 R2, और Windows 7 के लिए एक स्थापित करने योग्य सुविधा के रूप में उपलब्ध है, लेकिन आपको इसकी आवश्यकता होगी WinRM फ्रेमवर्क डाउनलोड करें इसे XP या Vista पर स्थापित करने के लिए।

PowerShell में किसी भी एडी-विशिष्ट cmdlets तक पहुंच प्राप्त करने के लिए आप करेंगे भी निम्न में से कम से कम एक स्थापित करने की आवश्यकता है:


48
2017-08-03 19:09



मैं हर समय पहली क्वेरी का उपयोग करता हूं - Jim B
ध्यान रखें कि आपको यह आदेश डोमेन नियंत्रक पर चलाने के लिए है। - skolima
आप ऐसा न करें इस कमांड को एक डोमेन नियंत्रक पर चलाने के लिए है। हालांकि, आप करना व्यवस्थापक समर्थन पैक .msi स्थापित करने की आवश्यकता है जो Windows 2003 सर्वर CDROM पर समर्थन उपकरण में शामिल है। या वहां से डाउनलोड करें microsoft.com/downloads/en/... - Ryan Fisher


PowerShell समाधान के लिए जिसे क्वेस्ट एडी ऐड-इन की आवश्यकता नहीं है, निम्न का प्रयास करें

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

यह नेस्टेड समूहों को भी समझाएगा। यदि आप ऐसा नहीं करना चाहते हैं, तो हटा दें -recursive स्विच।


23
2018-03-24 16:41



आप सही हैं कि ActiveDirectory मॉड्यूल को Quest ActiveRoles AD स्नैप-इन की आवश्यकता नहीं है, लेकिन इसके लिए यह आवश्यक है कि आपके पास RSAT टूल इंस्टॉल हों और आपके एडी में कम से कम एक डीसी सक्रिय निर्देशिका वेब सेवा (2008 के लिए) आर 2) या सक्रिय निर्देशिका प्रबंधन गेटवे सेवा (2003, 2008 डीसी के लिए) स्थापित। विवरण और लिंक के लिए ऊपर मेरा जवाब देखें। - Ryan Fisher


सर्वर और क्लाइंट पर काम करने वाला एक बहुत ही आसान तरीका:

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

यदि उपयोगकर्ता YOURGROUPNAME समूह में है, तो 1 देता है, अन्य 0 वापस आ जाएगा

फिर आप% ERRORLEVEL% मान का उपयोग कर सकते हैं (0 यदि समूह में उपयोगकर्ता, 1 यदि नहीं है) जैसे

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE

14
2017-10-08 09:37



"नेट समूह" कमांड केवल डोमेन (या डोमेन पेड़) खोजता है जहां कंप्यूटर शामिल हो जाता है। एक और आधुनिक विकल्प है: whoami /groups | find /I /C "YOURGROUPNAME" - DavisNT


सक्रिय निर्देशिका के लिए PowerShell और Quest Software के नि: शुल्क ActiveRoles प्रबंधन शैल का उपयोग करके, आप इसका उपयोग कर सकते हैं:

(Get-QADGroup "GroupName")। सदस्य

http://www.quest.com/powershell/activeroles-server.aspx


10
2017-08-03 20:51



इसके अलावा: Get-QADGroupMember 'GroupName' - Gordon Bell


यहां जवाब का उपयोग करें dsgetतथा dsquery केवल विंडोज के सर्वर संस्करणों पर काम करेगा क्योंकि उन कमांड को विंडोज के अन्य संस्करणों (जैसे विंडोज 7) पर नहीं भेजा जाता है। उन आदेशों के बिना मशीनों पर आप उस जानकारी को प्राप्त कर सकते हैं जिसका आप उपयोग करना चाहते हैं एडफिंड कमांड

समूह सदस्यता प्राप्त करने के लिए यहां एक उदाहरण क्वेरी है:

AdFind.exe -default -f name="Domain Admins" member -list

7
2018-03-31 10:34



ADFind.exe एक तृतीय पक्ष टूल है जिसे आपको वैसे भी इंस्टॉल करना है। डीएस * कमांड व्यवस्थापक उपकरण पैक के माध्यम से स्थापित करने योग्य हैं। - Ryan Fisher


स्थानीय समूहों और उपयोगकर्ताओं को कैसे सूचीबद्ध करें?

स्थानीय समूहों और उन समूहों के सदस्यों को सूचीबद्ध करने के लिए निम्न पावरहेल स्क्रिप्ट का उपयोग करें।

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-host
}

ऊपर दिए गए पाठ को नोटपैड में कॉपी करें और इस रूप में सहेजें filename.ps1। फिर फ़ाइल चलाएं। मुझे प्रत्येक समूह में समूह और उपयोगकर्ता प्रदर्शित करना चाहिए, या आप इसे शक्तिशक्ति से चला सकते हैं।


4
2018-01-14 19:12



मुझे मिला, cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters: और फिर इनपुट के लिए पूछताछ में, Process[0] - Mike S