У всего нашего домена есть тысячи групп рассылки, а я могу использовать скрипт, упомянутый здесь: Как получить список всех списков рассылки и их участников в Exchange 2007? Чтобы получить все группы рассылки и их участников, было бы слишком сложно отфильтровать все результаты.
Мне особенно нужно вытащить a. (предпочтительно) все группы (как распределительные, так и безопасные) и их члены внутри OU (это конкретное OU содержит более 100 сотен групп) или b. все группы и участники, имена которых начинаются с instancepl *
dsquery | Похоже, что dsget почти может служить этой цели, но когда я это сделал:
dsquery group "OU = my-Department, DC = blah, DC = blahblah, DC = com" -name * | группа dsget-члены (-expand) >> c: \ my-Department.txt
он отображает только участников, не показывая, к какой группе они принадлежат. Необходимые мне выходные данные должны иметь: название группы, членов и потенциально расширенные подгруппы.
Я все еще изучаю, как это сделать, кажется, я могу каким-то образом заставить упомянутый выше скрипт искать только внутри OU, но я не очень знаком с PowerShell.
любая помощь будет оценена, спасибо.
Это не очень красиво, но PowerShell должен это делать,
Import-Module ActiveDirectory
"{0},{1}" -f "Group Name", "Member" | out-file outfile.csv
Get-ADGroup -filter * -SearchBase "ou=groups, dc=your, dc=domain" | ForEach-Object {
$group = Get-ADGroup $_.Name
foreach ($member in Get-ADGroupMember $group)
{
"{0},{1}" -f $group.Name,$member.Name | out-file outfile.csv -append
}
}
Обновите SearchBase, указав путь к вашей целевой OU, и он должен исчезнуть.