risposta-alla-domanda-sullo-sviluppo-web-bd.com

Ottieni l'elenco dei gruppi di annunci di cui un utente è membro

Supponiamo di avere l'ID utente di un utente in Active Directory. Vorrei ottenere un elenco di tutti i gruppi AD di cui l'utente è attualmente membro. Come posso farlo dalla riga di comando di Windows?

Ho provato quanto segue:

dsget user "DC=jxd123" -memberof

errore:

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

Puoi farlo facilmente in PowerShell. Sono sicuro che puoi farlo anche con gli strumenti ds, ma sono vecchi e croccanti e PowerShell dovrebbe essere usato per tutto il possibile al giorno d'oggi.

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

Versione più corta

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

O con il comando Net User ...

Net User /domain username
86
Jack

Linea singola, nessun modulo necessario, utilizza l'utente attualmente registrato $ ($ env: nome utente), viene eseguito da altri computer Windows:

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

Qudos a questo articolo vbs/powershell: http://technet.Microsoft.com/en-us/library/ff730963.aspx

40
Canoas

Trovato una buona risorsa:

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

Ecco come farlo dal prompt dei comandi di 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 hai bisogno di vedere i tuoi gruppi, c'è whoami /groups :

Visualizza i gruppi di utenti a cui appartiene l'utente corrente.

Il vantaggio di questo comando rispetto a Net User /domain username è che anche le appartenenze al gruppo implicite vengono visualizzate con whoami.

8
Dmitry Grigoryev

Un altro approccio: uno script di PowerShell che elenca tutte le appartenenze ai gruppi implicite dal token dell'account di Windows. Funziona su un sistema limitato.

$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 è un altro ottimo strumento per questo genere di cose. È uno strumento gratuito di MVP Joe Richards

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

È possibile utilizzare una delle scorciatoie

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

Questa versione di PowerShell restituisce solo i nomi dei gruppi AD, anziché il DN del gruppo. L'output "select-object" può essere facilmente reindirizzato a un file CSV o di prova.

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

1
Nicholas Leader

Powershell, offre un output piacevole e pulito.

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

Ecco una soluzione che cerca tutti i domini nel dominio specificato (assumendo l'autorizzazione appropriata per ciascun dominio):

# 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

Utilizzo di Get-ADPrincipalGroupMembership

0
Thomas