Задача – выгрузить список пользователей сервера Exchange 2010 с логинами и группами рассылок в которых они состоят. На выходе должны получить что-то типа:
"User Name1", "UserLogon1", "DistrGroup1;DistrGroup2;DistrGroup3;" "User Name2", "UserLogon2", "DistrGroup3;DistrGroup4;DistrGroup5;" ....
Первые 2 столбца получаются достаточно легко через
Get-Mailbox -Server ServerName -ResultSize unlimited | select DisplayName, SamAccountName
Однако, в свойствах учётной записи на сервере Exchange отсутствует привязка к группам, в которых состоит учётная запись. Зато в AD у учётной записи пользователя доступно свойство MemberOf:
(Get-ADUser UserName -Properties MemberOf).MemberOf
Которое является массивом строковых переменных, в которых содержатся Distinguished Name групп, в которых пользователь состоит. Останется только эти группы отфильтровать, чтобы остались только группы рассылок. Для этого будем использовать параметр sAMAccountType, который для групп рассылок (SAM_NON_SECURITY_GROUP_OBJECT) будет равен 268435457. Для фильтрации групп получается такой небольшой скрипт:
$Groups = (Get-ADUser UserName -Properties MemberOf).MemberOf
$GroupsString = ""
foreach ($Group in $Groups){
   $GroupObject = [ADSI]"LDAP://$Group"
   if ($GroupObject.sAMAccountType -eq '268435457') {
      $GroupsString = $GroupsString + $GroupObject.name + "; "}}
Итоговый скрипт будет следующий:
Get-Mailbox -Server ServerName -ResultSize unlimited | select DisplayName,
SamAccountName, @{Name="Distribution Groups";expression={
$Groups = (Get-ADUser $_.SamAccountName -Properties MemberOf).MemberOf
$GroupsString = ""
   foreach ($Group in $Groups){
      $GroupObject = [ADSI]"LDAP://$Group"
      if ($GroupObject.sAMAccountType -eq '268435457') {
         $GroupsString = $GroupsString + $GroupObject.name + "; "}}
   $GroupsString}} | Export-Csv c:Tempusers.csv
                
Спасибо большое, в powershell’e еще юный падаван, давно искала под эту цель скрипт 🙂
Не за что.
В этом скрипте только вместо ServerName нужно ввести имя почтового сервера и всё?
выводится инфа только вида Kosarev Dmitry,”D.Kosarev”,