รับกลุ่ม Active Directory ที่ไม่ถูกตัดทอนของผู้ใช้จากบรรทัดคำสั่ง


92

ฉันมักจะใช้net userคำสั่งเพื่อดูกลุ่มโฆษณาสำหรับผู้ใช้:

net user /DOMAIN <username>

ใช้งานได้ดีอย่างไรก็ตามชื่อกลุ่มจะถูกตัดให้เหลือประมาณ 20 อักขระ และในองค์กรของฉันชื่อกลุ่มส่วนใหญ่จะยาวกว่านี้มาก

ไม่มีใครรู้วิธีรับกลุ่มโฆษณาที่ไม่ถูกตัดทอนผ่านทางบรรทัดคำสั่ง?


1
จากวันที่ของคำถามนี้ฉันเดาว่าการตัดอักขระ 20 ตัวไม่ใช่สิ่งที่เรียกใช้อีกต่อไปเนื่องจากการเรียกใช้คำสั่งนั้นจะส่งคืนกลุ่มที่มีชื่อใหญ่กว่า คำตอบด้านล่างwhoami /groupsก็เป็นคำตอบที่ดีเช่นกัน แต่จะแสดงเฉพาะกลุ่มผู้ใช้ที่ล็อกอินอยู่ในปัจจุบัน การแอบอ้างบุคคลอื่นและการเขียนโปรแกรมแบบเนียน ๆ อาจหลีกเลี่ยงได้;)
Richard Barker

2
เรียกใช้งานสำหรับผู้ใช้ในโดเมนที่องค์กรของฉัน การตัดทอนอักขระ 20 ตัวยังคงเป็นปัญหา
SherlockSpreadsheets

เป็นคำถามที่ดี Aguado!
Craig Wilcox

คำตอบ:


-11

คุณสามารถแยกวิเคราะห์ผลลัพธ์จากคำสั่ง GPRESULT


69
หากไม่มีตัวอย่างนี่เป็นคำตอบที่ไร้ประโยชน์
qujck

8
แต่มันเป็นคำตอบที่ไร้ประโยชน์ที่ถูกต้อง ...
ขุนศึก 099

ไม่แสดงกลุ่มโฆษณา มันแสดงสิ่งอื่น ๆ อีกมากมาย แต่ไม่ใช่กลุ่มโฆษณา
John Rocha

Guys ในเวลานั้น (ถามและตอบในปี 2009) นี่อาจเป็นวิธีเดียวที่จะทำสิ่งที่ OP ต้องการจริงๆ สังเกตว่าเขาพูดถึงการตัดทอนหลัง 20 อักขระในชื่อกลุ่ม
Richard Barker

1
@RichardBarker: การตัดทอนยังคงเกิดขึ้นกับ NET USER ในปี 2019
Ross Presser

113

GPRESULTเป็นคำสั่งที่ถูกต้อง แต่ไม่สามารถรันได้หากไม่มีพารามิเตอร์ /vหรือตัวเลือก verbose นั้นยากที่จะจัดการโดยไม่ต้องส่งออกไปยังไฟล์ข้อความ เช่นฉันแนะนำให้ใช้

gpresult /user myAccount /v > C:\dev\me.txt- ตรวจสอบให้แน่ใจว่ามี C: \ Dev \ me.txt อยู่

อีกทางเลือกหนึ่งคือการแสดงข้อมูลสรุปเฉพาะซึ่งอาจมองเห็นได้ทั้งหมดในหน้าต่างคำสั่ง:

gpresult /user myAccount /r

บัญชีจะแสดงอยู่ภายใต้หัวข้อ:

The user is a part of the following security groups
---------------------------------------------------

7
อันนี้น่าจะเป็นคำตอบ
LT

1
หากคุณกำลังมองหาสตริงเฉพาะคุณสามารถใช้findstrแทนการเปลี่ยนทิศทางเอาต์พุตไปยังไฟล์จากนั้นค้นหาไฟล์ ตัวอย่างเช่นgpresult /user myAccount /r | findstr mySearchString.
Jesse

2
เมื่อฉันเรียกใช้สิ่งนี้สำหรับบัญชีผู้ใช้ของฉันมันยอดเยี่ยมมากและฉันสามารถดูกลุ่มความปลอดภัยได้ เมื่อฉันเรียกใช้สำหรับบัญชีผู้ใช้อื่นคำสั่งจะส่งกลับ: ผู้ใช้ "userNameHere" ไม่มีข้อมูล RSOP
SherlockSpreadsheets

61

โพสต์เก่าเล็กน้อย แต่ฉันคิดว่าห่า "whoami" ตอบสนองความต้องการของคุณหรือไม่?

ฉันเพิ่งค้นพบเกี่ยวกับเรื่องนี้ในวันนี้ (จากการค้นหาใน Google เดียวกันที่ทำให้ฉันมาที่นี่) Windows มีเครื่องมือ whoami มาตั้งแต่ XP (เป็นส่วนหนึ่งของส่วนเสริมในชุดเครื่องมือ) และติดตั้งมาตั้งแต่ Vista

whoami /groups

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

ชื่อกลุ่มเท่านั้น:

whoami /groups /fo list |findstr /c:"Group Name:"

ฉันใช้WhoAmIเพื่อรับชื่อผู้ใช้ของฉันมาเป็นเวลานานแล้วเท่านั้นที่จะรู้ว่าวันนี้คุณสามารถทำอะไรได้มากกว่านี้! ขอขอบคุณ.
MaYaN

3
แสดงเฉพาะชื่อกลุ่ม: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(หมายเหตุ: ใช้%%แทน%ในไฟล์แบตช์)
Lectrode

สมบูรณ์แบบ! อย่าลังเลที่จะเสนอคำตอบใหม่สำหรับโพสต์เก่า!
Craig Wilcox

5

หรือคุณสามารถใช้dsqueryและdsget :

dsquery user domainroot -name <userName> | dsget user -memberof

ในการดึงข้อมูลการเป็นสมาชิกกลุ่มมีดังนี้:

Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"

ถึงแม้ว่าผมจะไม่สามารถหาหลักฐานใด ๆ ที่ฉันเคยติดตั้งแพคเกจนี้บนคอมพิวเตอร์ของฉันคุณอาจต้องติดตั้งระยะไกลเครื่องมือการดูแลระบบเซิร์ฟเวอร์สำหรับ Windows 7


1

วิธีที่ง่ายกว่ามากใน PowerShell:

Get-ADPrincipalGroupMembership <username>

ข้อกำหนด: บัญชีที่คุณใช้งานอยู่จะต้องเป็นสมาชิกของโดเมนเดียวกับผู้ใช้เป้าหมายเว้นแต่คุณจะระบุ-Credentialและ-Server(ยังไม่ทดสอบ)

นอกจากนี้คุณต้องติดตั้งโมดูล Active Directory Powershell ซึ่งตามที่ @ dave-lucre กล่าวในความคิดเห็นสำหรับคำตอบอื่นไม่ใช่ตัวเลือกเสมอไป

สำหรับชื่อกลุ่มเท่านั้นให้ลองใช้อย่างใดอย่างหนึ่งต่อไปนี้:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name

1
ตอบโจทย์มาก! วิธีนี้ใช้ได้ผล แต่ฉันก็ไม่แน่ใจว่ามันจะทำให้ง่ายขึ้น :) คุณต้องแยกวิเคราะห์ผลลัพธ์เพื่อให้ได้รายชื่อกลุ่ม (ฉันจะขยายตามนั้น!) นั่นไม่ใช่ความท้าทายสำหรับนักเทคโนโลยีที่เชี่ยวชาญด้าน PS แต่การก้าวกระโดดจาก DOS batch ไปสู่ ​​PS นั้นไม่ใช่เรื่องง่าย!
hector-j-rivas

0

1
คุณไม่สามารถทำได้โดยไม่ต้องติดตั้งโมดูล Active Directory Powershell (ซึ่งไม่ใช่ตัวเลือกเสมอไป)
Dave Lucre

2
แม้ว่าลิงก์นี้อาจตอบคำถามได้ แต่ควรรวมส่วนสำคัญของคำตอบไว้ที่นี่และระบุลิงก์เพื่อการอ้างอิง คำตอบแบบลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าที่เชื่อมโยงเปลี่ยนไป - จากรีวิว
Zulan

@Zulan: คุณเสียเวลากับคำตอบที่อายุ 7 ขวบ! ไม่เพียงแค่นั้น แต่ยังดูเหมือนไม่เข้ากันด้วยเนื่องจากคุณไม่ได้แสดงความคิดเห็นในคำตอบที่ยอมรับในลักษณะเดียวกัน
Mitch Wheat

@MitchWheat: คุณสังเกตเห็นFrom Reviewลิงค์ที่ท้ายความคิดเห็นของเขาหรือไม่? เขาไม่ได้แสดงความคิดเห็นเกี่ยวกับคำตอบที่ได้รับการยอมรับเพราะเขาไม่พบคำตอบนี้
zondo

ฉันทำ. ฉันคิดว่าอย่างน้อยผู้ตรวจสอบจะตรวจสอบคำตอบที่ยอมรับได้
Mitch Wheat

0

จากคำตอบของ P. Brian Mackey - ฉันลองใช้gpresult /user <UserName> /rคำสั่ง แต่ดูเหมือนว่าจะใช้ได้กับบัญชีผู้ใช้ของฉันเท่านั้น สำหรับบัญชีผู้ใช้อื่นฉันได้รับผลลัพธ์นี้: The user "userNameHere" does not have RSOP data.

ดังนั้นฉันจึงอ่านบล็อกนี้ - https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html--และหาวิธีแก้ปัญหา คุณต้องรู้ชื่อคอมพิวเตอร์ของผู้ใช้:

gpresult /s <UserComputer> /r /user:<UserName>

หลังจากรันคำสั่งคุณต้องENTERทำสองสามครั้งเพื่อให้โปรแกรมเสร็จสมบูรณ์เพราะโปรแกรมจะหยุดชั่วคราวตรงกลางของ ouput นอกจากนี้ผลลัพธ์ยังให้ข้อมูลจำนวนมากซึ่งรวมถึงส่วนสำหรับ " COMPUTER SETTINGS> Applied Group Policy Objects" แล้ว " COMPUTER SETTINGS> Security groups" และสุดท้าย " USER SETTINGS> security groups" (นี่คือสิ่งที่เรากำลังมองหาจากกลุ่มโฆษณาที่แสดงรายการด้วยคำอธิบายที่ไม่ถูกตัดทอน!)

น่าสนใจที่จะทราบว่า GPRESULT มีสมาชิกพิเศษที่ไม่เห็นในคำสั่ง NET USER นอกจากนี้ลำดับการจัดเรียงไม่ตรงกันและไม่เรียงตามตัวอักษร ใครสามารถเพิ่มเติมข้อมูลเชิงลึกในความคิดเห็นที่จะดีมาก

ผล: gpresult (with ComputerName, UserName)

ด้วยเหตุผลด้านความปลอดภัยฉันได้รวมผลลัพธ์การเป็นสมาชิกไว้เพียงบางส่วนเท่านั้น (36 รวม 12 ตัวอย่าง)

The user is a part of the following security groups
---------------------------------------------------
..
 Internet Email 
 GEVStandardPSMViewers  
 GcoFieldServicesEditors    
 AnimalWelfare_Readers  
 Business Objects   
 Zscaler_Standard_Access    
..
 GCM    
..
 GcmSharesEditors   
 GHVStandardPSMViewers  
 IntranetReportsViewers 
 JetDWUsers     -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
 Time and Attendance Users  
..

ผล: net user /DOMAIN (with UserName)

ด้วยเหตุผลด้านความปลอดภัยฉันได้รวมผลลัพธ์การเป็นสมาชิกไว้เพียงบางส่วนเท่านั้น (รวม 23, 12 ตัวอย่าง)

Local Group Memberships  
Global Group memberships    ...
                             *Internet Email       *GEVStandardPSMViewers
                             *GcoFieldServicesEdito*AnimalWelfare_Readers
                             *Business Objects     *Zscaler_Standard_Acce
                             ...
                             *Time and Attendance U*GCM
                             ...
                             *GcmSharesEditors     *GHVStandardPSMViewers
                             *IntranetReportsViewer*JetPowerUsers
The command completed successfully.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.