Отображение списков рассылки и участников для Intermedia HostPilot PowerShell - PullRequest
0 голосов
/ 05 июня 2018

Я все еще изучаю PowerShell и пытаюсь извлечь некоторые данные из Intermedia, используя их инструмент PowerShell Intermedia HostPilot.

Сначала я добавлю всю информацию группы рассылки в свой $Массив групп:

$Groups = Get-DistributionGroup

Я могу получить DisplayName и EmailAddress тех, кто находится в группах рассылки, однако я не могу сказать, какой пользователь в какой группе:

for ($i=0; $i -lt $Groups.length; $i++) 
{ Get-DistributionGroupMember -Identity $Groups[$i].DistinguishedName |
Select DisplayName, EmailAddress }

Iнашел приведенный ниже сценарий онлайн (https://www.morgantechspace.com/2015/06/powershell-export-distribution-list-members-to-csv.html), который был полезен, но я до сих пор не вижу членов группы в моем файле csv, просто список групп рассылки:

$Groups = Get-DistributionGroup
$Groups | ForEach-Object {
$group = $_.GUID
$members = ''
Get-DistributionGroupMember $group | ForEach-Object {
        If($members) {
              $members=$members + ";" + $_.GUID
           } Else {
              $members=$_.GUID
           }
  }
New-Object -TypeName PSObject -Property @{
      GroupName = $group
      Members = $members
     }
} | Export-CSV "C:\\Distribution-Group-Members.csv" -NoTypeInformation -Encoding UTF8

В идеалеЯ хотел бы иметь дополнительный столбец, который отображает группу рассылки для каждого пользователя. Примерно так:

DistributionGroup DisplayName EmailAddressбухгалтерский учет Роб Смит rob.smith@yahoo.comбухгалтерский учет Джон Куинси john.quincy@yahoo.com

Это один из вариантов, которые я пробовал:

for ($i=0; $i -lt $Groups.length; $i++) 
{ Get-DistributionGroupMember -Identity $Groups[$i].DistinguishedName | 
Select DisplayName, EmailAddress, $Groups[$i].DisplayName }

Это просто дает мне заголовок с именем первой группы рассылки, например:

DisplayName EmailAddress Accounting

Любые советы приветствуются.Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Я действительно не знаю, что представляют собой команды PowerShell Intemedia HostPilot, но в простом PowerShell вы могли бы пойти с чем-то вроде этого:

$DGroups = Get-ADGroup -Filter {(GroupCategory -eq "Distribution")} | select Name
Foreach ($Group in $DGroups) 
{
write-host""
write-host "Members of the >>> "$Group.Name" <<< are:"
write-host "--------"
$Users = Get-ADGroupMember $Group.Name | Select samaccountname | sort Samaccountname
Foreach ($user in $users) 
    {

    Get-ADUser -Identity $user.samaccountname -Properties * | select Name, Samaccountname, mail, displayname

    }

}

Я публикую это как ответ в виде кода в комментарияхотображается не очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...