В настоящее время я занят скриптом, который должен сделать следующее:
Сценарий должен проверить группу Azure AD и сравнить мутации в EXO DG. Я написал и связал некоторые входы и выходы, но я не могу заставить их работать.У меня ноль ошибок при запуске, но удаленный пользователь из группы SG не будет удален из DG в EXO.
Почему я это делаю?
У меня есть открытый вопрос, чтобы сделать группу безопасности Azure AD с поддержкой почты. К сожалению, группы безопасности Azure AD не могут быть группами с включенной поддержкой почты.
В «New-AzureADMSGroup» или «Set-AzureADMSGroup» есть объект MailEnabled, но он не поддерживается.
Имея EXO MSG, просто не удовлетворяйте потребности, потому что вы не можете использовать эту группу в пакетах доступа или корпоративных приложениях.
Наличие EXO DDL также не удовлетворяет потребности, потому что у пользователей в запрошенной группе AAD SG просто нет одинаковых критериев для фильтрации. Единственное, что объединяет пользователей, это членство в AAD SG.
#Azure AD
$AzureADGroup1 = "ххххх-ххх-хххх-хх-ххххххх"
$AzureADGroup1Members = Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true | Почта Select-Object
#ЭКЗО
$DGMembers = (Get-distributiongroupmember -identity [email protected]).primarysmtpaddress
foreach ($AzureADGroup1Member в $AzureADGroup1Members) {
#если пользователи уже добавлены, возвращает $false
если (!($DGMembers -match $AzureADGroup1Member))
{
Add-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}
Write-Host -ForegroundColor Green $AzureADGroup1Member.Mail "добавлен"
если (!($DGMembers -notmatch $AzureADGroup1Member))
{
Remove-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}
Write-Host -ForegroundColor Green $AzureADGroup1Member.Mail "удален"
}
ОБНОВИТЬ: Сейчас я сделал еще один скрипт, который не очень аккуратный.
1: Удаляет всех участников из DG
2: извлекает всех участников из AAD SG.
3: добавить всех участников обратно в DG
#EXO: Очистить DG
$ДГ = "ДГ1"
$DGMembers = (Get-distributiongroupmember -identity $DG).PrimarySmtpAddress
foreach ($DGMember в $DGMembers) {
Remove-DistributionGroupMember -Identity $DG -Member $DGMember -Confirm:$false -ErrorAction SilentlyContinue
Write-Host -ForegroundColor Green $DGMember "удален"
}
#Azure AD: получите AAD SG
$AzureADGroup1 = "хххх-хххх-ххх-ххх-ххх"
$AzureADGroup1Members = (Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true).Mail
#EXO: Заполнить DG еще раз
foreach ($AzureADGroup1Member в $AzureADGroup1Members) {
Add-DistributionGroupMember -Identity $DG -Member $AzureADGroup1Member -Confirm:$false -ErrorAction SilentlyContinue
Write-Host -ForegroundColor Green $AzureADGroup1Member "добавлен"
}
Ну это само по себе не проблема, только то, что в AAD SG более 1100 членов, я конечно могу запускать его в 1 час каждую ночь, но боюсь что он может быть не готов в 7 часов в долгосрочной перспективе.