列出不在几个通讯组列表中的用户PowerShell Exchange联机



我正在寻找主smtp是我们的domain.com的用户,这些用户不在我们的某些office365通讯组列表中。例如Dist1、Dist2、Dist3、Dist4。我对PowerShell不是很好,但我找到了这个脚本,我希望有人能帮我调整一下。

此脚本提取所有组的组成员身份。

Get-Mailbox | Where-Object {$_.PrimarySMTPAddress -like "*domain.com"} | ForEach-Object {
$user   = Get-User -Identity $_.DistinguishedName                      
$groups = Get-Group | Where-Object {$_.Members -contains $User}
$_ | Select-Object DisplayName, Alias, PrimarySMTPAddress,
@{Name = 'Groups' ; Expression = {$groups.Name -join '; '}}
} | Export-Csv -Path 'X:O365UserGroups.csv' -NoTypeInformation

我制作了一个脚本,检查主smtp用户是否是你的domain.com,以及他们是否是distributiongroup 1或2的成员。如果用户不是分发组的成员,它将输出此消息。您可以自己轻松地将导出添加到csv等。

$Users = Get-Mailbox | ? {$_.PrimarySmtpAddress -like "*domain.com"} #Enter your domain
$DistributionGroups = @("dist1","dist2") #Enter names of your distributiongroups
foreach($DistributionGroup in $DistributionGroups)
{ 
$DistributionGroupMembers = Get-DistributionGroupMember $DistributionGroup

foreach($User in $Users)
{
foreach($DistributionGroupMember in $DistributionGroupMembers)
{
if($DistributionGroupMember.PrimarySmtpAddress -ne $User.PrimarySmtpAddress)
{
Write-Host "$($User.PrimarySmtpAddress) missing in $DistributionGroup" #Export output here fx. 
}
}
}
}

最新更新