使用 PowerShell 获取通讯组/所有者,但删除拥有 null 或空所有者的条目

问题描述 投票:0回答:2

我有一份很棒的工作,从 Exchange Online 获取分发组及其所有者的列表。到目前为止,这工作得很好,但我需要微调我的输出以排除没有任何所有者的组;以及拥有多个所有者的组(仅返回第一个所有者)。

到目前为止,这相当困难,因为这是我第一次尝试 PShell。 这是我的代码:

$job = Get-DistributionGroup | select Name,PrimarySmtpAddress, @{n= "ManagedBy"; e={$_.ManagedBy | Select-Object -First 1 | Where-Object {$_.ManagedBy.Count -eq 0} |foreach {(Get-Mailbox $_).PrimarySMTPAddress}}}


Write-Output $job | ConvertTo-Json

这是我的输出示例:

我基本上只想返回一个字符串地址。因此,发行版组的单个所有者,没有空值,并且只有集合中的第一个地址。 (现在它们是空白的,我可能会用我的代码攻击它们 - 但通常它们会返回 4 个左右的电子邮件地址,但我只想要第一个人)

谢谢!

azure powershell automation
2个回答
0
投票

您所说的集合是指 ManagedBy 属性,对吗?如果是这样,请尝试使用

{ ($_.ManagedBy | Select-Object -First 1 | Get-Mailbox).PrimarySMTPAddress }
– 圣地亚哥·斯夸松 1小时前


0
投票

使用以下脚本获取启用了 Exchange 电子邮件的安全组/发行版所有者的电子邮件地址。

Connect-ExchangeOnline $GroupName = '在此提及组名称' $GroupOwners = (Get-DistributionGroup -Identity $GroupName| 选择名称,@{name= "ManagedBy"; 表达式={($_.ManagedBy | Get-Mailbox).PrimarySMTPAddress }}).ManagedBy -join ';'

© www.soinside.com 2019 - 2024. All rights reserved.