网络上出现了许多页面,详细介绍了如何使用Powershell枚举动态电子邮件组的成员,但是我找不到您如何找到特定用户所在的动态组。当然,这是非常基本的要求?
我正在寻找与之等效的动态组
Get-DistributionGroup -Filter "Members -eq ""CN=xxxxx xxxxxx,OU=xxxxx,DC=xxxxx,DC=local"""
我知道动态组是动态的,但是肯定有一种方法可以复制向组发送电子邮件时进行的交换? 有用的获取帮助Get-DistributionGroup不存在...
编辑:经过一整夜的审议和人们的回应,看来这需要一个多阶段的过程。
创建动态通讯组列表
创建第一组的成员列表
在列表中搜索特定用户并报告是或否
重复下一组等。
答案 0 :(得分:0)
Set-ExecutionPolicy RemoteSigned
$email = "Email"
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
$DistributionGroups = Get-DistributionGroup | where { (Get-DistributionGroupMember $_.Name | foreach {$_.PrimarySmtpAddress}) -contains "$email"}
答案 1 :(得分:0)
如前所述,动态组是动态的,并且根据您设置的过滤器和条件自动计算组成员的动态分配。
因此,如果您要由特定用户获取动态组,则需要查询某些用户属性是否符合设置条件,即SMTP。(据我所知)对吗?
但是,我还没有找到这种映射关系。但是,有一个简单的变通办法,它枚举了所有动态通讯组并检查哪些与您的用户匹配。
实际上,您可以使用UserName / Address和其他属性来匹配它。当然,我知道这不是最好的解决方案。