it-swarm-ru.tech

Получить список групп AD, членом которых является пользователь

Предположим, у меня есть идентификатор пользователя в Active Directory. Я хотел бы получить список всех групп AD, в которые входит данный пользователь. Как я могу сделать это из командной строки Windows?

Я пробовал следующее:

dsget user "DC=jxd123" -memberof

Ошибка:

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

Вы можете сделать это в PowerShell довольно легко. Я уверен, что вы можете сделать это и с помощью инструментов ds, но они старые и хрупкие, и PowerShell следует использовать для всего возможного в наше время.

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

Более короткая версия

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

Или с помощью команды Net User ...

Net User /domain username
86
Jack

Одна строка, не требующая модулей, использует текущего зарегистрированного пользователя $ ($ env: username), запускается с других компьютеров Windows:

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

Престижность к этой статье vbs/powershell: http://technet.Microsoft.com/en-us/library/ff730963.aspx

40
Canoas

Найден хороший ресурс:

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

Вот как это сделать из командной строки Windows:

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

PowerShell:

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

Если вам нужно увидеть свои собственные группы, есть whoami /groups :

Отображает группы пользователей, к которым принадлежит текущий пользователь.

Преимущество этой команды перед Net User /domain username означает, что неявное членство в группах также отображается с помощью whoami.

8
Dmitry Grigoryev

Другой подход: сценарий PowerShell, который перечисляет все неявные членства в группах из токена учетной записи Windows. Работает на ограниченной системе.

$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 - еще один замечательный инструмент для такого рода вещей. Это бесплатный инструмент от MVP Джо Ричардс

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

Вы можете использовать один из ярлыков

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

Эта версия PowerShell возвращает только имена групп AD, а не DN группы. Вывод 'select-object' может быть легко передан в CSV или тестовый файл.

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

1
Nicholas Leader

Powershell, дает хороший и чистый выходной.

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

Вот решение для поиска всех доменов в данном домене (при условии правильного разрешения для каждого домена):

# 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

Использование Get-ADPrincipalGroupMembership

0
Thomas