Importar módulo do Exchange no VSCode usando MFA
Olá pessoal! Novamente venho aqui e compartilhar uma dica para quem é de DEVOPS e gosta de usar o VSCode pra manter versionamento de código, conexão com O365 e execução de atividades em lote no Exchange.
Se você conseguiu se identificar com o que comentei, sabe que a Microsoft nos permite fazer dois tipos de conexão no O365, uma por autenticação padrão, e outra com um módulo de MFA (Multi Factor Authentication). O problema é que ao se conectar ao Exchange para fazer conexões de Powershell usando o MFA ficamos reféns do shell da própria Microsoft.
Abaixo vamos usar um script chamado MFAAuthentication.ps1 para se conectar ao módulo de Exchange no O365 e explicarei linha-à-linha o que estamos executando. Vamos entender o que está acontecendo?
Comando completo:
Import-Module $((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0\") -Filter Microsoft.Exchange.Management.ExoPowershellModule.dll -Recurse ).FullName|where-object{$_ -notmatch "_none_"}|Select-Object -First 1) $EXOSession = New-ExoPSSession Import-PSSession $EXOSession
Explicação:
Primeiramente, vamos importar o módulo do exchange no caminho padrão após sua instalação pelo método explicado na fonte 2 desse artigo.
Import-Module $((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0\") -Filter Microsoft.Exchange.Management.ExoPowershellModule.dll -Recurse ).FullName|where-object{$_ -notmatch "_none_"}|Select-Object -First 1)
Iniciamos uma nova conexão no O365 onde o usuário e senha serão verificados além do MFA via telefone ou pela forma que foi configurada por você no momento da primeira habilitação.
$EXOSession = New-ExoPSSession
Após a validação, importamos a variável com a validação e passamos a conectar à uma nova sessão no O365.
Import-PSSession $EXOSession
Conclusão:
Pronto! Você já pode utilizar dos seus scripts ou comandos para gerenciar seu ambiente de Exchange via O365 pelo Visual Studio Code!
Se tiverem dúvidas sobre o VSCode com Powershell e se quiserem saber um pouco mais, posso continuar compartilhando alguns posts por aqui, o que acham?
Fonte:
MFA: https://docs.microsoft.com/pt-br/office365/admin/security-and-compliance/set-up-multi-factor-authentication?view=o365-worldwide
MFA Exchange: https://docs.microsoft.com/pt-br/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell?view=exchange-ps