it-swarm-pt.tech

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

Suponha que eu tenha a identificação de usuário de um usuário no Active Directory. Gostaria de obter uma lista de todos os grupos do AD nos quais esse usuário atualmente é membro. Como posso fazer isso na 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.
58
MacGyver

Você pode fazer isso no PowerShell com bastante facilidade. Tenho certeza de que você também pode fazê-lo com as ferramentas ds, mas elas são antigas e complicadas e o PowerShell deve ser usado para tudo o que é possível atualmente.

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

Versão mais curta

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

Ou com o comando suário líquido ...

Net User /domain username
86
Jack

A linha única, sem a necessidade de módulos, usa o usuário registrado atual $ ($ env: username), é executado a partir de outras máquinas Windows:

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

Parabéns a este artigo do vbs/powershell: http://technet.Microsoft.com/en-us/library/ff730963.aspx

40
Canoas

Encontrei um bom recurso:

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

Veja como fazer isso no prompt de comando do Windows:

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

PowerShell:

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

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

Exibe os grupos de usuários aos quais o usuário atual pertence.

A vantagem deste comando sobre Net User /domain username é que as associações implícitas ao grupo também são exibidas com whoami.

8
Dmitry Grigoryev

Outra abordagem: um script do PowerShell que lista todas as participações implícitas do grupo no token da 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])
}
6
ofthelit
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt
3
Vibhat

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

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

Você pode usar um dos atalhos

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

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

1
Nicholas Leader

Powershell, fornece uma saída agradável e limpa.

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

Aqui está uma solução pesquisando todos os domínios no domínio fornecido (assumindo a permissão adequada para cada domínio):

# 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

Usando Get-ADPrincipalGroupMembership

0
Thomas