2014-02-03 3 views
1

Я пытаюсь получить список групп конкретных пользователей и описания групп с помощью PowerShell.Список всех групп и их описания для определенного пользователя в Active Directory с помощью PowerShell

import-module activedirectory 
$username = Read-Host 'Please enter Username!' 
Get-ADPrincipalGroupMembership $username | select name, description 

В поле описания пусто.

+0

Связанные с этим: http://stackoverflow.com/q/5072996/2157640 http://stackoverflow.com/q/1458016/2157640 Помогли ли они? – Palec

+0

Первая ссылка помогла, хотя не может понять, как отображать описание групп. – user3264332

ответ

3

От Get-ADPrincipalGroupMembership manual:

Get-ADPrincipalGroupMembership командлет возвращает набор значений по умолчанию свойств ADgroup. Чтобы получить дополнительные свойства ADGroup, передайте объекты ADGroups, созданные этим командлетом, через pipline в Get-ADGroup. Укажите дополнительные свойства, необходимые для объектов группы, передав параметр -Properties в Get-ADGroup.

Итак, давайте сделаем это!

import-module activedirectory 
$username = Read-Host 'Please enter Username!' 
Get-ADPrincipalGroupMembership $username | Get-ADGroup -Properties * | select name, description 

Кроме того, в этом случае оно должно быть достаточно, чтобы указать name,description вместо звездочки (*). Если это проблема с производительностью, замените ее. Я оставляю его на звездочке, потому что позже вы можете передумать, какие свойства вам нужны.

0

Для пользователей

Get-ADUser -Filter {name -eq $username} -Properties * | select name,description 

для групп

Get-ADGroup -Filter {displayname -eq $groupname} -Properties * | select name,description 
+0

Можете ли вы объяснить, что делает ваш код? Это поможет сделать ваш ответ более ясным. –

0

Get-ADPrincipalGroupMembership должен работать, но не работает, если какая-либо группа имеет имя, содержащее «/» (который является правовой характер в именах, насколько Я понял MS AD documentation).

Это заставляет тяжелый обходной путь:

$Groups = (Get-ADUser -identity $TemplateUserName -server $TemplateUserDomain -Properties MemberOf|select memberof).MemberOf|Get-ADGroup -Server :3268 
foreach ($Group in $Groups) 
{ 
    Write-Output $Group.Name 
} 

Примечание Я использую поиск домена для свойств пользователя, а затем поиск в глобальном каталоге (-Server: 3268) для каждой группы. Кроме того, вы в конечном итоге не получите все группы пользователей, или вы получите сообщение об ошибке, если какая-либо группа принадлежит к другому домену, чем пользователь.

0

Вот простой, но эффективный сценарий для получения информации группы AD.

Get-ADGroup -filter * -Properties * | Select Name,GroupCategory,Description | Export-Csv D:\Test\SecurityGroups.csv 

Просто добавьте или удалите атрибуты, которые вы хотели бы видеть в области «Выбрать». Чтобы просмотреть список полезных атрибутов, вы можете сделать примерно следующее:

Get-ADGroup -filter * -Properties * | Where-Object {$_.Name -eq 'DHCP Users' } 

Надеюсь, что это поможет.

Смежные вопросы