Список групп рассылки и участников PowerShell? (Office 365)

Я ищу способ экспортировать список групп рассылки вместе с членами каждой группы через PowerShell в Office 365.

Я нашел скрипты, которые экспортируют список пользователей и групп, к которым они принадлежат, но не наоборот?

я сблизился с этим:

$saveto = "C:listmembers.txt"

Get-DistributionGroup | sort name | ForEach-Object {

    "`r`n$($_.Name)`r`n=============" | Add-Content $saveto
    Get-DistributionGroupMember $_ | sort Name | ForEach-Object {
        If($_.RecipientType -eq "UserMailbox")
            {
                $_.Name + " (" + $_.PrimarySMTPAddress + ")" | Add-Content $saveto
            }
    }
}

но это создает текстовый файл со списком всех групп рассылки и разделена приятно "====" но не отображаются. Я получаю ниже ошибку на каждом группа находит:

Cannot process argument transformation on parameter 'Identity'. Cannot convert value "GROUP NAME" to type "Microsoft.Exchange.Configuration.Tasks.DistributionGroupMemberIdParameter". Error:
 "Cannot convert hashtable to an object of the following type: Microsoft.Exchange.Configuration.Tasks.DistributionGroupMemberIdParameter. Hashtable-to-Object conversion is not supported in rest
ricted language mode or a Data section."
    + CategoryInfo          : InvalidData: (:) [Get-DistributionGroupMember], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-DistributionGroupMember
8
задан Samuel Nicholson
27.04.2023 3:32 Количество просмотров материала 3084
Распечатать страницу

3 ответа

я попробовал ответ от Vaibhav, но он не сработал сразу. Я решил свою проблему со следующим кодом.

$saveto = "listmembers.txt"
Get-DistributionGroup $_.Alias | sort Name | Foreach-Object {
"`r`n$($_.DisplayName)`r`n=============" | Add-Content $saveto
    Get-DistributionGroupMember $_.Alias  | sort Name | Foreach-Object {
        $_.DisplayName| Add-Content $saveto
    }
}

запуск этого вывода группа DisplayName, за которой следует пользователь DisplayName в списке ниже.

2
отвечен Adam Matthews 2023-04-28 11:20

думаю у меня есть обходной путь если не ответ для вас-вот упрощенная версия вашего скрипта (минус форматирование):

Get-DistributionGroup | select -Property alias | Foreach-Object {
    Get-DistributionMember S_.Alias | Foreach-Object {
        $_.Name | Add-Content $saveto
    }
}

видите, что я там сделал? Вместо того, чтобы передавать объект из группы рассылки непосредственно в foreach (что каким-то образом делает его разрыв), я вместо этого решил создать массив свойств и передать его в foreach.

это работает, я пробовал. Я надеюсь, что это поможет.

1
отвечен Vaibhav 2023-04-28 13:37

и, присоединившись к предыдущим ответам, чтобы получить что-то, что работает на моем экземпляре, вы можете попробовать это:

Get-DistributionGroup | select -Property PrimarySMTPAddress | ForEach-Object {
    "`r`n$($_.PrimarySMTPAddress)`r`n============="
    Get-DistributionGroupMember $_.PrimarySMTPAddress | ForEach-Object $_.PrimarySMTPAddress
}

Я использую PrimarySMTPAddress вместо Alias, потому что у меня есть несколько списков с одним и тем же псевдонимом, но разными доменными именами.

0
отвечен David Birks 2023-04-28 15:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх