
Preciso usar os seguintes cmdlets do módulo ExchangeOnline Powershell com uma conexão autônoma.
- Mensagem de quarentena
- Mensagem de quarentena de visualização
- Mensagem de Quarentena de Lançamento
- Exportar-Mensagem de Quarentena
Seguindo esta primeira documentaçãohttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps, criei um registro de aplicativo do Azure com certificado autoassinado, atribuí a permissão de API "Exchange.ManageAsApp" e concedi o consentimento.
Então criei um Grupo de Segurança do Azure e adicionei meu aplicativo como membro desse grupo.
Em seguida, criei uma função personalizada no portal Microsoft 365 Defender seguindo esta documentação: https://learn.microsoft.com/en-us/defender-for-identity/role-groups
Nesta função, adicionei a seguinte permissão personalizada:
- Quarentena de e-mail (gerenciar)
- Ações avançadas de e-mail (gerenciar) e somente leitura paraDados brutos (e-mail e colaboração)
- E, claro, atribuí meu grupo criado na etapa 2 a esta nova função
Tudo isso me permite usar os primeiros 2 cmdlets sem problemas, mas não consigo acessar oExportar-Mensagem de QuarentenaeMensagem de Quarentena de Lançamento.
Podemos listar as permissões necessárias para este cmdlet através desses comandos (a partir daí: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
Eu tentei este último comando:
PS > Add-RoleGroupMember "Hygiene Management" -Member <name of the application created at step 1>
Posso ver o membro do meu aplicativo se executar:
PS > Get-RoleGroupMember "Hygiene Management"
Mas ainda não tenho acesso aoExportar-Mensagem de QuarentenaeMensagem de Quarentena de Lançamentocmdlets.
ATUALIZAR
Criando uma função personalizada do Exchange com "Higiene de Transporte" + "Administrador de Segurança"
PS > $AadApp = Get-AzureADServicePrincipal -SearchString ""
PS > New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName "ServicePrincipal para meu aplicativo"
PS > $SP = Get-ServicePrincipal -Identity "ServicePrincipal para meu aplicativo"
PS > Add-RoleGroupMember -Identity "<função criada na etapa 1>" -Member $SP.Identity
Sem sorte.
ATUALIZAR Alterar minha função personalizada do Exchange apenas com: -Mailbox Import Export -Mailbox Search -MailboxSearchApplication -Message Tracking -Transport Hygiene -View-Only Configuration -View-Only Destinatários parece funcionar. Vou deixar passar o fim de semana para ver se isso não é mais uma mudança que demora para ser replicada no lado da Microsoft