it-swarm-vi.com

Nhận danh sách các nhóm AD mà người dùng là thành viên của

Giả sử tôi có id người dùng của người dùng trong Active Directory. Tôi muốn có một danh sách tất cả các nhóm AD mà người dùng đó hiện đang là thành viên. Làm thế nào tôi có thể làm điều này từ dòng lệnh Windows?

Tôi đã thử như sau:

dsget user "DC=jxd123" -memberof

Lỗi :

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

Bạn có thể làm điều này trong PowerShell khá dễ dàng. Tôi chắc chắn bạn cũng có thể làm điều đó với các công cụ DS, nhưng chúng đã cũ và thô sơ và PowerShell nên được sử dụng cho mọi thứ có thể hiện nay.

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

Phiên bản ngắn hơn

(Get-ADUser userName –Properties MemberOf).MemberOf
37
MDMarra

Hoặc với lệnh Người dùng mạng ...

Net User /domain username
86
Jack

Một dòng, không cần mô-đun, sử dụng người dùng đã đăng nhập hiện tại $ ($ env: tên người dùng), chạy từ các máy windows khác:

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

Qudos cho bài viết vbs/powershell này: http://technet.Microsoft.com/en-us/l Library/ff730963.aspx

40
Canoas

Tìm thấy một tài nguyên tốt:

http://social.technet.Microsoft.com/wiki/contents/articles/2195.active-directory-dsquery-commands.aspx

Đây là cách thực hiện từ lệnh Windows Nhắc:

dsquery user -samid jxd123 | dsget user -memberof | dsget group -samid
12
MacGyver

PowerShell:

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

Nếu bạn cần xem các nhóm của riêng mình, có whoami /groups :

Hiển thị các nhóm người dùng mà người dùng hiện tại thuộc về.

Ưu điểm của lệnh này hơn Net User /domain username là thành viên nhóm ẩn cũng được hiển thị với whoami.

8
Dmitry Grigoryev

Một cách tiếp cận khác: tập lệnh PowerShell liệt kê tất cả các thành viên nhóm ẩn từ mã thông báo tài khoản Windows. Hoạt động trên một hệ thống hạn chế.

$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() 
ForEach($group in $token.Groups){
    $group.Translate([System.Security.Principal.NTAccount])
}
6
ofthelit
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt
3
Vibhat

adfind là một công cụ tuyệt vời cho loại điều này. Nó là một công cụ miễn phí từ MVP Joe Richards

http://www.jonterest.net/freetools/tools/adfind/

Bạn có thể sử dụng một trong những thiếu sót

adfind -sc u:username memberof
2
Mike Kline
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name
2
Bill Ou

Phiên bản PowerShell này chỉ trả về tên nhóm AD, thay vì DN của nhóm. Đầu ra 'select-object' có thể dễ dàng được chuyển sang tệp CSV hoặc tệp thử nghiệm.

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

1
Nicholas Leader

Powershell, cho một đầu ra đẹp và sạch sẽ.

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

Đây là một giải pháp tìm kiếm tất cả các tên miền trong tên miền nhất định (giả sử sự cho phép phù hợp cho từng tên miền):

# provide the logon name here:
$user="alice"
[email protected]()

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

Sử dụng Get-ADPrincipalgroupMembership

0
Thomas