
Мне необходимо использовать следующие командлеты из модуля ExchangeOnline Powershell с автоматическим подключением.
- Get-QuarantineMessage
- Предварительный просмотр-карантинное сообщение
- Выпуск-карантинСообщение
- Экспорт-карантинСообщение
После этой первой документацииhttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-psЯ создал регистрацию приложения Azure с самозаверяющим сертификатом, назначил разрешение API «Exchange.ManageAsApp», а затем предоставил согласие.
Затем я создал группу безопасности Azure и добавил свое приложение в качестве члена этой группы.
Затем я создал пользовательскую роль на портале Microsoft 365 Defender, следуя этой документации: https://learn.microsoft.com/en-us/defender-for-identity/role-groups
В этой роли я добавил следующее пользовательское разрешение:
- Карантин электронной почты (управление)
- Расширенные действия по электронной почте (управление) и только для чтенияНеобработанные данные (электронная почта и совместная работа)
- И, конечно же, я назначил свою группу, созданную на шаге 2, на эту новую роль.
Все это позволяет мне использовать первые 2 командлета без каких-либо проблем, но я не могу получить доступ кЭкспорт-карантинСообщениеиВыпуск-карантинСообщение.
Мы можем перечислить разрешения, необходимые для этого командлета, с помощью этих команд (оттуда:https://learn.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps)
PS > $Perms = Get-ManagementRole -Cmdlet Export-QuarantineMessage
PS > $Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}
Role RoleAssigneeType RoleAssigneeName
---- ---------------- ----------------
Security Admin RoleGroup Organization Management
Security Admin RoleGroup SecurityAdmins_782500194
Role RoleAssigneeType RoleAssigneeName
---- ---------------- ----------------
Transport Hygiene RoleGroup Hygiene Management
Transport Hygiene RoleGroup Organization Management
Я попробовал эту последнюю команду:
PS > Add-RoleGroupMember "Hygiene Management" -Member <name of the application created at step 1>
Я могу увидеть своего участника приложения, если выполню:
PS > Get-RoleGroupMember "Hygiene Management"
Но у меня все еще нет доступа кЭкспорт-карантинСообщениеиВыпуск-карантинСообщениекомандлеты.
ОБНОВЛЯТЬ
Создание пользовательской роли Exchange с «Transport Hygiene» + «Security Administrator»
PS > $AadApp = Get-AzureADServicePrincipal -SearchString ""
PS > New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName "ServicePrincipal для моего приложения"
PS > $SP = Get-ServicePrincipal -Identity "ServicePrincipal для моего приложения"
PS > Add-RoleGroupMember -Identity "<роль создала шаг 1>" -Member $SP.Identity
Безуспешно.
ОБНОВЛЯТЬ Изменение моей пользовательской роли Exchange только с: -Импортом и экспортом почтовых ящиков -Поиском почтовых ящиков -Приложением поиска почтовых ящиков -Отслеживанием сообщений -Гигиеной транспорта -Конфигурацией только для просмотра -Получателями только для просмотра, похоже, работает. Я отложу выходные, чтобы посмотреть, не являются ли эти изменения очередными, которые требуют времени для репликации на стороне Microsoft