首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示Intermedia HostPilot PowerShell的通讯组列表和成员

显示Intermedia HostPilot PowerShell的通讯组列表和成员
EN

Stack Overflow用户
提问于 2018-06-05 11:09:36
回答 2查看 556关注 0票数 0

我仍然在学习PowerShell的方法,我正在尝试使用他们的中间媒体HostPilot PowerShell工具从中间媒体中获取一些数据。

首先,我将所有通讯组信息添加到我的$Groups数组:

代码语言:javascript
复制
$Groups = Get-DistributionGroup

我能够获得通讯组中用户的DisplayName和EmailAddress,但是我不知道哪个用户在哪个组中:

代码语言:javascript
复制
for ($i=0; $i -lt $Groups.length; $i++) 
{ Get-DistributionGroupMember -Identity $Groups[$i].DistinguishedName |
Select DisplayName, EmailAddress }

我在网上找到了下面的脚本(https://www.morgantechspace.com/2015/06/powershell-export-distribution-list-members-to-csv.html),它很有帮助,但我仍然没有在csv文件中看到组的成员,只看到了通讯组的列表:

代码语言:javascript
复制
$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         rob.smith@yahoo.com。

会计部:财务总监,John Quincy      john.quincy@yahoo.com

这是我尝试过的一个变体:

代码语言:javascript
复制
for ($i=0; $i -lt $Groups.length; $i++) 
{ Get-DistributionGroupMember -Identity $Groups[$i].DistinguishedName | 
Select DisplayName, EmailAddress, $Groups[$i].DisplayName }

这给了我一个标题,其中包含第一个通讯组的名称,如下所示:

DisplayName和EmailAddress以及会计部

欢迎任何建议。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-06-05 17:21:50

我真的不知道Intemedia HostPilot powershell命令是什么,但在简单的powershell中,你可以使用下面这样的命令:

代码语言:javascript
复制
$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

    }

}

我将其作为答案发布,因为评论中的代码显示得不是很好。

票数 0
EN

Stack Overflow用户

发布于 2019-10-19 02:23:27

$Result对象与您给出的所需格式示例相匹配,并且准备好输出到控制台、管道到Out-GridView或导出到CSV。

代码语言:javascript
复制
$DGroups = Get-DistributionGroup
$Result = @()
foreach ( $DGroup in $DGroups ) {
    $DGroup | Get-DistributionGroupMember | Select-Object DisplayName, EmailAddress | ForEach-Object {
        $Result += [PSCustomObject]@{
            DistributionGroup = $DGroup.DisplayName
            DisplayName = $_.DisplayName
            EmailAddress = $_.EmailAddress
        }
    }
}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50691436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档