我有一份很棒的工作,从 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 个左右的电子邮件地址,但我只想要第一个人)
谢谢!
您所说的集合是指 ManagedBy 属性,对吗?如果是这样,请尝试使用
{ ($_.ManagedBy | Select-Object -First 1 | Get-Mailbox).PrimarySMTPAddress }
–
圣地亚哥·斯夸松
1小时前
使用以下脚本获取启用了 Exchange 电子邮件的安全组/发行版所有者的电子邮件地址。
Connect-ExchangeOnline $GroupName = '在此提及组名称' $GroupOwners = (Get-DistributionGroup -Identity $GroupName| 选择名称,@{name= "ManagedBy"; 表达式={($_.ManagedBy | Get-Mailbox).PrimarySMTPAddress }}).ManagedBy -join ';'