उपयोगकर्ता जिन समूहों का सदस्य है, उनकी सूची प्राप्त करें


52

मान लीजिए कि मेरे पास सक्रिय निर्देशिका में उपयोगकर्ता की उपयोगकर्ता आईडी है। मैं सभी विज्ञापन समूहों की एक सूची प्राप्त करना चाहता हूं जिसमें वह उपयोगकर्ता वर्तमान में सदस्य है। मैं विंडोज कमांड लाइन से यह कैसे कर सकता हूं?

मैंने निम्नलिखित कोशिश की है:

dsget user "DC=jxd123" -memberof

त्रुटि:

dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.

3
जब आप dsget निष्पादित करते हैं तो आपको निश्चित रूप से dsquery के लिए कोई त्रुटि नहीं मिलेगी। कॉपी और पेस्ट विफल?
mfinni

FYI करें, StackOverflow पर एक ही सवाल कुछ और उत्तर के साथ मिला।
निक

मेरे पास जवाब देने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन यह मानकर कि आप शक्तियां उपयोग कर रहे हैं, आप इसे लिख सकते हैं: Get-ADPrincipalGroupMembership उपयोगकर्ता नाम | चयनित नाम
अवि दर्शन

जवाबों:


33

आप इसे PowerShell में बहुत आसानी से कर सकते हैं। मुझे यकीन है कि आप इसे डीएस टूल्स के साथ भी कर सकते हैं, लेकिन वे पुराने और crusty हैं और आजकल हर संभव के लिए PowerShell का उपयोग किया जाना चाहिए।

Import-Module ActiveDirectory
(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf

छोटा संस्करण

(Get-ADUser userName –Properties MemberOf).MemberOf

मैंने Powershell डाउनलोड किया, और अब एक .msu फ़ाइल है। मैं * .msu फ़ाइल का उपयोग करके इसे कैसे स्थापित करूं?
मैकगिवर

आप किस ऑपरेटिंग सिस्टम पर हैं? PowerShell XP से कुछ भी नया बनाया गया है और यह एक वैकल्पिक विंडोज अपडेट के रूप में XP के लिए उपलब्ध है।
एमडीमैरा

Windows XP .. मेरी कंपनी धीमी है: - \
MacGyver

फिर आपने गलत इंस्टॉलर डाउनलोड किया। इसके अलावा, सिर्फ एक सिर ऊपर, XP का समर्थन सिर्फ एक वर्ष के भीतर समाप्त होता है। उन्नयन हो जाओ! microsoft.com/en-us/windows/endofsupport.aspx
MDMarra

1
Get-ADPrincipalGroupMembershipPowerShell में ऐसा करने का एक और तरीका है।
निक

83

या नेट यूजर कमांड के साथ ...

net user /domain username

3
मुझे सादगी पसंद है कि कुछ "पुराने" डॉस कमांड ऑफर करते हैं। और, वे हमेशा वहाँ रहे हैं, भले ही आपके पास पोस एक पुरानी मशीन पर लोड नहीं है, डॉस बचाव के लिए आता है! इसे पोस्ट करने के लिए धन्यवाद।
जेफ मोदेन

3
यह केवल स्पष्ट लौटेगा, लेकिन समूह की सदस्यता का नहीं।
इलायस प्रोबस्ट

11
स्लीक कमांड, BUT, आउटपुट में समूहों के नाम 21 वर्णों को काटे जाते हैं ... :-(
t0r0X

1
हां, सीमाएं हैं। नेस्टेड ग्रुप मेंबरशिप नहीं दिखाई गई है और आप सही हैं, आउटपुट छोटा है। बेशक, मैंने बाद का विचार नहीं किया था।
जैक

महान काम किया, लेकिन इसे क्यों काट दिया जाएगा? क्या कोई कॉन्फ़िगरेशन / पैरामीटर है जिसे पूर्ण समूह नाम के लिए जोड़ा जा सकता है?
थिंककोड

36

एकल पंक्ति, कोई मॉड्यूल आवश्यक नहीं, वर्तमान लॉग इन उपयोगकर्ता $ ($ env: उपयोगकर्ता नाम) का उपयोग करता है, अन्य विंडोज़ मशीनों से चलता है:

(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf

इस vbs / अधिकार लेख के लिए क़ुदोस: http://technet.microsoft.com/en-us/library/ff730963.aspx


2
बहुत अच्छा समाधान, केवल वही जो मेरे लिए कोई अतिरिक्त सॉफ्टवेअर स्थापित किए बिना काम करता है! धन्यवाद!
t0r0X

2
किसी भी अतिरिक्त सॉफ्टवेयर के बिना एक प्रतिबंधित प्रणाली पर काम करने के लिए +1!
साओसुप


8

शक्ति कोशिका:

Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name

7

यदि आपको अपने स्वयं के समूह देखने की आवश्यकता है, तो whoami /groups:

उपयोगकर्ता समूहों को प्रदर्शित करता है जिसमें वर्तमान उपयोगकर्ता है।

इस आदेश का लाभ यह net user /domain usernameहै कि अंतर्निहित समूह सदस्यता के साथ भी प्रदर्शित किए जाते हैं whoami


सबसे अच्छा उपाय। Upvoted। छोटा एवं सुन्दर। नहीं काटता है। व्यक्तिगत रूप से मुझे सबसे अच्छा LIST प्रारूप पसंद है, अर्थात whoami /groups /fo list, क्योंकि यह आंख से पढ़ना सबसे आसान है।
पेटेर

6

एक अन्य दृष्टिकोण: एक पॉवरशेल स्क्रिप्ट जो विंडोज अकाउंट टोकन से सभी निहित समूह सदस्यता को सूचीबद्ध करती है। प्रतिबंधित प्रणाली पर काम करता है।

$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() 
ForEach($group in $token.Groups){
    $group.Translate([System.Security.Principal.NTAccount])
}


2
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name


1

यह PowerShell संस्करण समूह के DN के बजाय केवल AD समूह के नाम देता है। 'सेलेक्ट-ऑब्जेक्ट' आउटपुट को आसानी से CSV या परीक्षण फ़ाइल में पाइप किया जा सकता है।

(Get-ADUser ExampleUser –Properties MemberOf).memberof | Get-ADGroup | Select-Object name


0

Powershell, एक अच्छा और साफ आउटपुट देता है।

(get-aduser USER -Properties MemberOf | select MemberOf).MemberOf | % {$_.split(",")[0].replace("CN=","")}

0

यहां दिए गए डोमेन के अंतर्गत सभी डोमेन को खोजने का एक उपाय है (प्रत्येक डोमेन के लिए उचित अनुमति):

# provide the logon name here:
$user="alice"
$allGroups=@()

foreach ( $d in (Get-ADForest example.net).domains ) { Write-Output "Looking up $user in domain $d"; $allGroups += Get-ADPrincipalGroupMembership $user -ResourceContextServer $d }

$allGroups | ft name,GroupScope,distinguishedName -AutoSize

Get-ADPrincipalGroupMembership का उपयोग करना


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.