Nhận các nhóm Active Directory không bị cắt ngắn của người dùng từ dòng lệnh


90

Tôi thường sử dụng net userlệnh để xem các nhóm QUẢNG CÁO cho người dùng:

net user /DOMAIN <username>

Điều này hoạt động tốt, tuy nhiên, tên nhóm bị cắt ngắn còn khoảng 20 ký tự. Và trong tổ chức của tôi, hầu hết các tên nhóm đều dài hơn nhiều.

Có ai biết cách để có được các nhóm AD không bị cắt ngắn thông qua dòng lệnh không?


1
Dựa trên ngày của câu hỏi này, tôi đoán rằng việc cắt bớt 20 ký tự không còn là vấn đề nữa khi chạy lệnh đó trả về các nhóm có tên lớn hơn. Câu trả lời dưới đây whoami /groupscũng là một trong những câu trả lời hay. Nhưng nó chỉ liệt kê những nhóm người dùng hiện đang đăng nhập. Mạo danh và lập trình bóng bẩy có thể giải quyết được điều đó;)
Richard Barker

2
Ran nó cho một người dùng trên miền tại tổ chức của tôi; Việc cắt bớt 20 ký tự vẫn là một vấn đề.
SherlockS

Câu hỏi hay, Aguado!
Bart

Câu trả lời:


-9

Bạn có thể phân tích cú pháp đầu ra từ lệnh GPRESULT.


68
Nếu không có một ví dụ này là một câu trả lời vô ích
qujck

8
Nhưng nó là câu trả lời vô dụng chính xác ... dường như.
Warlord 099

Nó không hiển thị các nhóm quảng cáo. Nó hiển thị RẤT NHIỀU nội dung khác, nhưng không hiển thị các nhóm QUẢNG CÁO.
John Rocha

Các bạn, vào thời điểm đó (được hỏi và trả lời vào năm 2009), đây có thể là cách duy nhất để thực sự làm những gì OP cần. Lưu ý rằng anh ấy đề cập đến việc cắt bớt sau 20 ký tự trong tên nhóm.
Richard Barker,

@RichardBarker: Việc cắt bớt vẫn đang xảy ra với NET USER vào năm 2019.
Ross Presser

109

GPRESULTlà lệnh đúng, nhưng nó không thể chạy nếu không có tham số. /vhoặc tùy chọn dài dòng rất khó quản lý nếu không xuất ra tệp văn bản. EG tôi khuyên bạn nên sử dụng

gpresult /user myAccount /v > C:\dev\me.txt--Ensure C: \ Dev \ me.txt tồn tại

Một tùy chọn khác là chỉ hiển thị thông tin tóm tắt có thể hiển thị hoàn toàn trong cửa sổ lệnh:

gpresult /user myAccount /r

Các tài khoản được liệt kê dưới tiêu đề:

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

6
Câu hỏi này phải là câu trả lời
LT

1
Nếu bạn đang tìm kiếm một chuỗi cụ thể, bạn có thể sử dụng findstrthay vì chuyển hướng đầu ra đến một tệp và sau đó tìm kiếm tệp. Ví dụ gpresult /user myAccount /r | findstr mySearchString,.
Jesse

2
Khi tôi chạy phần này cho tài khoản người dùng của mình, thật tuyệt và tôi có thể thấy các nhóm bảo mật. Khi tôi chạy nó cho một tài khoản người dùng khác, lệnh trả về: Người dùng "userNameHere" không có dữ liệu RSOP.
SherlockS

60

Một bài viết cũ một chút, nhưng tôi đã tìm ra cái quái gì. "Whoami" có đáp ứng được nhu cầu của bạn không?

Tôi mới biết về nó hôm nay (thực tế là từ cùng một tìm kiếm của Google đã đưa tôi đến đây). Windows đã có công cụ whoami kể từ XP (một phần của bộ công cụ bổ sung) và đã được tích hợp sẵn kể từ Vista.

whoami /groups

Liệt kê tất cả các nhóm QUẢNG CÁO cho người dùng hiện đang đăng nhập. Tôi tin rằng nó yêu cầu bạn đăng nhập trên AS người dùng đó, vì vậy điều này sẽ không hữu ích nếu trường hợp sử dụng của bạn yêu cầu khả năng chạy lệnh để xem xét người dùng khác.

Chỉ tên nhóm:

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

Tôi đã sử dụng WhoAmIđể lấy tên người dùng của mình trong một thời gian rất dài chỉ để nhận ra NGAY HÔM NAY rằng bạn có thể làm được nhiều hơn thế với nó! Cảm ơn bạn.
MaYaN

3
danh sách chỉ tên nhóm: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(lưu ý: sử dụng %%thay vì %trong tập tin batch)
Lectrode

hoàn hảo! Đừng ngần ngại cung cấp câu trả lời mới cho các bài viết cũ!
Bart

5

Hoặc bạn có thể sử dụng dsquerydsget :

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

Để truy xuất tư cách thành viên nhóm như sau:

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"

Mặc dù tôi không thể tìm thấy bất kỳ bằng chứng nào cho thấy tôi đã từng cài đặt gói này trên máy tính của mình, nhưng bạn có thể cần cài đặt Công cụ quản trị máy chủ từ xa cho Windows 7 .


1

Cách dễ dàng hơn nhiều trong PowerShell:

Get-ADPrincipalGroupMembership <username>

Yêu cầu: tài khoản mà bạn đang điều hành phải là thành viên của cùng một miền với người dùng mục tiêu, trừ khi bạn chỉ định -Credential-Server(chưa được kiểm tra).

Ngoài ra, bạn phải cài đặt mô-đun Active Directory Powershell, như @ dave-lucre nói trong nhận xét cho một câu trả lời khác, không phải lúc nào cũng là một tùy chọn.

Chỉ đối với tên nhóm, hãy thử một trong các cách sau:

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

1
Câu trả lời chính xác! Điều này có hiệu quả, nhưng tôi không quá chắc chắn rằng nó làm cho nó dễ dàng hơn :). Bạn phải phân tích cú pháp kết quả để có được danh sách tên nhóm (tôi sẽ mở rộng với điều đó!). Đó không phải là một thách thức đối với những người am hiểu về PS, nhưng bước nhảy vọt từ đợt DOS sang PS không bao giờ là một điều dễ dàng!
hector-j-rivas

0

1
Bạn không thể làm điều này mà không cần cài Directory Powershell mô-đun hoạt động (mà không phải lúc nào cũng là một lựa chọn)
Dave lợi lộc

1
Mặc dù liên kết này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo. Các câu trả lời chỉ có liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
Zulan

@Zulan: bạn đang lãng phí thời gian của mình cho một câu trả lời là 7 tuổi! Không chỉ vậy, nó còn có vẻ không hợp lý khi bạn không nhận xét câu trả lời được chấp nhận theo cùng một cách.
Mitch Wheat

@MitchWheat: Bạn có nhận thấy From Reviewliên kết ở cuối bình luận của anh ấy không? Anh ấy không bình luận về câu trả lời được chấp nhận bởi vì anh ấy đã không xem qua nó trong quá trình xem xét.
zondo

Tôi đã làm. Tôi đã nghĩ rằng một người đánh giá ít nhất sẽ kiểm tra câu trả lời được chấp nhận.
Mitch Wheat

0

Dựa trên câu trả lời của P.Brian.Mackey-- Tôi đã thử sử dụng gpresult /user <UserName> /rlệnh, nhưng nó dường như chỉ hoạt động với tài khoản người dùng của tôi; cho những người dùng khác tài khoản tôi có kết quả này: The user "userNameHere" does not have RSOP data.

Vì vậy, tôi đã đọc qua blog này - https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html-- và tìm ra giải pháp. Bạn phải biết tên máy tính của người dùng:

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

Sau khi chạy lệnh, bạn phải thực hiện ENTERmột vài lần để chương trình hoàn thành vì nó sẽ tạm dừng giữa chừng. Ngoài ra, kết quả cung cấp một loạt dữ liệu bao gồm một phần cho " COMPUTER SETTINGS> Applied Group Policy Objects", sau đó là " COMPUTER SETTINGS> Security groups" và cuối cùng là " USER SETTINGS> security groups" (đây là những gì chúng tôi đang tìm kiếm với các nhóm AD được liệt kê với mô tả không bị cắt ngắn!).

Điều thú vị là GPRESULT có một số thành viên bổ sung không được thấy trong lệnh NET USER. Ngoài ra, thứ tự sắp xếp không khớp và không theo thứ tự bảng chữ cái. Bất kỳ cơ quan nào có thể bổ sung thêm thông tin chi tiết trong các nhận xét sẽ rất tuyệt.

CÁC KẾT QUẢ: gpresult (with ComputerName, UserName)

Vì lý do bảo mật, tôi chỉ đưa vào một tập hợp con các kết quả thành viên. (36 TỔNG, 12 MẪU)

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  
..

CÁC KẾT QUẢ: net user /DOMAIN (with UserName)

Vì lý do bảo mật, tôi chỉ đưa vào một tập hợp con các kết quả thành viên. (23 TỔNG, 12 MẪU)

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.