Obter lista de grupos do AD de um usuário é um membro de

45

Suponha que eu tenha o ID de usuário de um usuário no Active Directory. Gostaria de obter uma lista de todos os grupos do AD dos quais esse usuário é membro no momento. Como posso fazer isso a partir da linha de comando do Windows?

Eu tentei o seguinte:

dsget user "DC=jxd123" -memberof

Erro:

dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.
    
por MacGyver 19.08.2013 / 20:42

14 respostas

28

Você pode fazer isso no PowerShell com bastante facilidade. Tenho certeza que você pode fazer isso com as ferramentas ds também, mas eles são velhos e crostosos e o PowerShell deve ser usado para todo o possível hoje em dia.

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

Versão mais curta

(Get-ADUser userName –Properties MemberOf).MemberOf
    
por 19.08.2013 / 20:47
71

Ou com o comando net user ...

net user /domain username
    
por 19.08.2013 / 20:58
29

Linha única, nenhum módulo necessário, usa o usuário logado atual $ ($ env: username), é executado a partir de outras máquinas Windows:

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

Qudos deste artigo do vbs / powershell: link

    
por 13.05.2014 / 11:42
8

Encontrou um bom recurso:

link

Veja como fazer isso no prompt de comando do Windows:

dsquery user -samid jxd123 | dsget user -memberof | dsget group -samid
    
por 19.08.2013 / 20:56
6

PowerShell:

Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name
    
por 15.04.2014 / 05:50
6

Se você precisar ver seus próprios grupos, há whoami /groups :

Displays the user groups to which the current user belongs.

A vantagem deste comando sobre net user /domain username é que associações de grupo implícitas também são exibidas com whoami .

    
por 29.01.2016 / 12:04
5

Outra abordagem: um script do PowerShell que lista todas as associações de grupo implícitas do token de conta do Windows. Funciona em um sistema restrito.

$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() 
ForEach($group in $token.Groups){
    $group.Translate([System.Security.Principal.NTAccount])
}
    
por 02.03.2017 / 12:37
3
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt
    
por 20.08.2014 / 12:24
2
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name
    
por 22.06.2015 / 21:56
2

adfind é outra ótima ferramenta para esse tipo de coisa. É uma ferramenta gratuita do MVP Joe Richards

link

Você pode usar um dos atalhos

adfind -sc u:username memberof
    
por 20.08.2013 / 16:38
1

Esta versão do PowerShell retorna apenas os nomes dos grupos do AD, em vez do DN do grupo. A saída 'select-object' pode ser facilmente canalizada para um arquivo CSV ou de teste.

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

    
por 31.08.2016 / 16:53
0

Powershell, dá uma saída legal e limpa.

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

Esta é uma solução que pesquisa todos os domínios no domínio em questão (assumindo a permissão adequada para cada domínio):

# 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

Usando Get-ADPrincipalGroupMembership

    
por 04.01.2018 / 22:21
-4

Tente isto:

gpresult -V /user blah
    
por 26.05.2017 / 06:14