Powershell da Semana #2 - Bloquear encaminhamento de e-mails

Continuando a série do Powershell da semana quero apresentar para vocês uma nova tarefa administrativa que pode surgir por questões de compliance.

Este é o cenário:

Você tem uma organização e deve garantir através do Exchange Online que os usuários não tenham permissões de encaminhamento de mensagens. Previnindo que desta forma e-mails sejam resolvidos para outra conta.

Aqui estão os passos para realizar este processo.

Entre com suas credenciais do Office 365

$cred=Get-Credential

Importante
Após ingressar em sua sessão certifique-se de que você saiu dela por meio do comando

Remove-PSSession $session

Conecte na sessão do Exchange Online

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid" -Credential $cred -AllowRedirection -Authentication Basic
Import-PSSession $session

Agora basta seguir o script conforme as especificações abaixo.

#Habilitando a customização do Exchange Online
Enable-OrganizationCustomization
#Criando uma nova regra a partir da atual "MyBaseOptions"
New-ManagementRole -Parent MyBaseOptions -Name DenyForwarding
#Removendo a capacidade do usuário encaminhar a mensagem para outro usuário:
Set-ManagementRoleEntry DenyForwarding\New-InboxRule -RemoveParameter -Parameters ForwardTo, RedirectTo, ForwardAsAttachmentTo
#Editando a regra criada para encaminhamento:
Set-ManagementRoleEntry DenyForwarding\Set-InboxRule -RemoveParameter -Parameters ForwardTo, RedirectTo, ForwardAsAttachmentTo
#Removendo a opção encaminhar do Outlook Web:
Set-ManagementRoleEntry DenyForwarding\Set-Mailbox -RemoveParameter -Parameters DeliverToMailboxAndForward,ForwardingAddress,ForwardingSmtpAddress
#Criando um nova política e adicionando as regras criadas na mesma.
New-RoleAssignmentPolicy -Name DenyForwardingRoleAssignmentPolicy -Roles DenyForwarding, MyContactInformation, MyRetentionPolicies, MyMailSubscriptions, MyTextMessaging, MyVoiceMail, MyDistributionGroupMembership, MyDistributionGroups, MyProfileInformation
#Atribuindo a política para todos os usuários
Get-Mailbox -ResultSize Unlimited | 
ForEach-Object {
        Set-Mailbox -Identity $_.Alias -RoleAssignmentPolicy DenyForwardingRoleAssignmentPolicy 
    }
#Atribuindo a política para um usuário específico
$Identity = "<Inserir UPN do usuário>"
Set-Mailbox –Identity $Identity -RoleAssignmentPolicy DenyForwardingRoleAssignmentPolicy

Lembre-se de não utilizar a última parte em todos os comandos, escolha qual dos cenários se aplica melhor, seja aplicar para toda organização ou só parte dela.

Este comando faz com que as políticas parem de ser aplicadas para usuários novos, porém caso um usuário já faça uso desta funcionalidade, ela continuará funcionando normalmente.

Espero que o conteúdo possa ajudá-los. Nos vemos na próxima!