Получить членство в группе AD рекурсивно с помощью PowerShell - PullRequest
1 голос
/ 29 ноября 2010

Какой самый чистый (и самый быстрый) способ получить ВСЕ группы, членом которых является один пользователь.Я использую PowerShell 2.0 для подсчета зарегистрированных пользователей в Citrix и разделения их на группы из Active Directory.Все пользователи являются членами 1 подгруппы группы, называемой «VDI-Billing», но число вложенных групп между пользователем и группой VDI-Billing не всегда одинаково.Поэтому я хочу, чтобы все группы (включая вложенные) могли сравниваться со списком участников из группы VDI-Billing (1-й уровень), поэтому я получаю обзор.

Пример:

VDI-Billing имеет членскую группу NL-VDI-T-Systems.Это имеет несколько групп (которые сами по себе имеют несколько групп).Но в обзоре должны учитываться все пользователи (под) члены NL-VDI-T-Systems.

Итак, в обзоре я должен получить: NL-VDI-T-Systems: 22 ITA-VDI-T-Systems: 25 И так далее.

Кто-нибудь знает небольшой хитрость?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2010

Мы пишем сценарии, которые делают это на моей работе все время! С Quest ActiveRoles Management Tools - бесплатным оснасткой, облегчающей работу с объектами Active Directory в Powershell WAY.

  1. Установите бесплатные Инструменты управления активами Quest ActiveRoles из Квесты
  2. Добавьте PSSnapin в свой профиль, чтобы получить доступ ко всем инструментам Powershell AD из консоли - Add-PSSnapin Quest.ActiveRoles.ADManagement. Если вы хотите написать сценарии, использующие инструменты AD, просто добавьте команду в первую строку вашего сценария.
  3. Запустите следующую команду, чтобы получить все прямые и вложенные группы, членами которых является пользователь: Get-QADUser 'DOMAIN\USER' | foreach -Process {$_.memberof, $_.nestedmemberof} Вы можете передать это в текстовый файл или CSV, если хотите, добавив командлеты Out-CSV или Out-File конец команды.

Это работает для меня как оберег. Дайте мне знать, если у вас есть какие-либо вопросы!

~ Dan

0 голосов
/ 01 января 2012

Лучший способ сделать это - воспользоваться атрибутом TokenGroups вместо того, чтобы выполнять рекурсивное расширение самостоятельно. Вы можете найти примеры здесь и здесь .

РЕДАКТИРОВАТЬ: Более краткий пример

...