รับรายการของกลุ่มโฆษณาที่ผู้ใช้เป็นสมาชิก


52

สมมติว่าฉันมีรหัสผู้ใช้ของผู้ใช้ใน Active Directory ฉันต้องการรับรายชื่อกลุ่มโฆษณาทั้งหมดที่ผู้ใช้นั้นเป็นสมาชิกอยู่ ฉันจะทำสิ่งนี้จากบรรทัดคำสั่งของ Windows ได้อย่างไร

ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

dsget user "DC=jxd123" -memberof

ข้อผิดพลาด:

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

3
แน่นอนคุณจะไม่ได้รับข้อผิดพลาดสำหรับ dsquery เมื่อคุณรัน dsget คัดลอกและวางล้มเหลว
mfinni

FYI พบคำถามเดียวกันใน StackOverflow ด้วยคำตอบอีกสองสามข้อ
Nic

ฉันไม่มีชื่อเสียงพอที่จะตอบ แต่ถ้าคุณใช้ PowerShell คุณสามารถเขียนสิ่งนี้ได้: Get-ADPrincipalGroupMembership ชื่อผู้ใช้ | เลือกชื่อ
Avi Parshan

คำตอบ:


33

คุณสามารถทำสิ่งนี้ใน PowerShell ได้อย่างง่ายดาย ฉันแน่ใจว่าคุณสามารถใช้เครื่องมือ ds ได้เช่นกัน แต่มันเก่าและดุดันและ PowerShell ควรใช้สำหรับทุกสิ่งที่เป็นไปได้ในปัจจุบัน

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

รุ่นที่สั้นกว่า

(Get-ADUser userName –Properties MemberOf).MemberOf

ฉันดาวน์โหลด Powershell และตอนนี้มีไฟล์ * .msu ฉันจะติดตั้งโดยใช้ไฟล์ * .msu ได้อย่างไร
MacGyver

คุณใช้ระบบปฏิบัติการอะไร PowerShell สร้างขึ้นในสิ่งที่ใหม่กว่า XP และพร้อมใช้งานสำหรับ XP เป็น Windows Update ซึ่งเป็นทางเลือก
MDMarra

Windows XP .. บริษัท ของฉันช้า: - \
MacGyver

จากนั้นคุณดาวน์โหลดตัวติดตั้งที่ไม่ถูกต้อง นอกจากนี้การสนับสนุน XP ก็จบลงในเวลาไม่ถึงปี รับการอัพเกรดเคลื่อนที่! microsoft.com/en-us/windows/endofsupport.aspx
MDMarra

1
Get-ADPrincipalGroupMembershipเป็นอีกวิธีในการทำเช่นนี้ใน PowerShell
Nic

83

หรือด้วยคำสั่งผู้ใช้เน็ต ...

net user /domain username

3
ฉันชอบความเรียบง่ายที่คำสั่ง DOS "เก่า" บางตัวเสนอ และพวกมันอยู่ที่นั่นเสมอแม้ว่าคุณจะไม่ได้โหลด PoSH บนเครื่องเก่าก็ตาม DOS ก็มาช่วยชีวิต! ขอขอบคุณที่โพสต์สิ่งนี้
Jeff Moden

3
สิ่งนี้จะส่งกลับอย่างชัดเจน แต่ไม่ได้บอกเป็นนัยถึงความเป็นสมาชิกกลุ่ม
อีเลียส Probst

11
คำสั่ง Slick แต่ชื่อกลุ่มในผลลัพธ์จะถูกปัดเศษเป็น 21 ตัวอักษร ... :-(
t0r0X

1
ใช่มีข้อ จำกัด การเป็นสมาชิกกลุ่มที่ซ้อนกันจะไม่แสดงและคุณพูดถูกเอาท์พุทจะถูกตัดทอน เป็นที่ยอมรับฉันไม่ได้พิจารณาอย่างหลัง
แจ็ค

ทำงานได้ดี แต่ทำไมมันถึงถูกตัดทอน? มี config / พารามิเตอร์ที่สามารถเพิ่มสำหรับชื่อกลุ่มแบบเต็มหรือไม่
ThinkCode

36

บรรทัดเดียว, ไม่จำเป็นต้องใช้โมดูล, ใช้ผู้ใช้ปัจจุบันที่เข้าสู่ระบบ $ ($ env: ชื่อผู้ใช้), เรียกใช้จากเครื่อง windows อื่น ๆ :

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

ถามถึงบทความ vbs / powershell นี้: http://technet.microsoft.com/en-us/library/ff730963.aspx


2
ทางออกที่ดีมาก ๆ มีเพียงอันเดียวที่ใช้ได้สำหรับฉันโดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม! ขอบคุณ!
t0r0X

2
+1 สำหรับการทำงานบนระบบที่ถูก จำกัด โดยไม่มีซอฟต์แวร์เพิ่มเติม!
Saustrup



7

หากคุณต้องการเห็นกลุ่มของคุณเองมีwhoami /groups:

แสดงกลุ่มผู้ใช้ที่ผู้ใช้ปัจจุบันอยู่

ข้อได้เปรียบของคำสั่งนี้มากกว่าคือการที่สมาชิกของกลุ่มโดยปริยายจะแสดงยังมีnet user /domain usernamewhoami


ทางออกที่ดีที่สุด upvoted สั้นและหวาน ไม่ตัดทอน โดยส่วนตัวแล้วฉันชอบรูปแบบ LIST ที่ดีที่สุดนั่นคือwhoami /groups /fo listเพราะว่ามันเป็นการอ่านที่ง่ายที่สุดด้วยตา
เตอร์

6

วิธีการอื่น: สคริปต์ PowerShell ที่แสดงการเป็นสมาชิกกลุ่มโดยนัยทั้งหมดจากโทเค็นบัญชี Windows ทำงานบนระบบที่ถูก จำกัด

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




1

PowerShell เวอร์ชันนี้ส่งคืนเฉพาะชื่อกลุ่มโฆษณาแทนที่จะเป็น DN ของกลุ่ม เอาต์พุต 'select-object' สามารถถูกไพพ์ไปยังไฟล์ 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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.