Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo contém instruções sobre como se conectar ao PowerShell do Exchange Online usando o módulo do PowerShell do Exchange Online com ou sem MFA (autenticação multifator).
Dica
As instruções de conexão neste artigo também se aplicam ao complemento de segurança interna para caixas de correio locais.
O módulo Exchange Online do PowerShell usa autenticação moderna para se conectar ao Exchange Online PowerShell e ao PowerShell de Segurança & Conformidade. Para obter mais informações sobre o módulo do PowerShell do Exchange Online, consulte Sobre o módulo do PowerShell do Exchange Online.
Para se conectar ao PowerShell do Exchange Online para automação, consulte Autenticação somente do aplicativo para scripts autônomos e Usar identidades gerenciadas do Azure para se conectar ao PowerShell do Exchange Online.
Para se conectar ao PowerShell do Exchange Online por meio do C#, confira Usar o C# para se conectar ao PowerShell do Exchange Online.
Do que você precisa saber para começar?
Os requisitos para instalar e usar o módulo são descritos em Pré-requisitos para o módulo do PowerShell do Exchange Online e Sistemas operacionais com suporte para o módulo do PowerShell do Exchange Online.
Depois que você se conecta, o RBAC (controle de acesso baseado em função) controla os cmdlets e os parâmetros aos quais você tem ou não acesso. Para obter mais informações, confira Permissões no Exchange Online.
Para localizar as permissões necessárias para executar cmdlets específicos do Exchange Online, consulte Encontre as permissões necessárias para executar qualquer cmdlet do Exchange.
Etapa 1: Carregar o módulo do PowerShell do Exchange Online
Observação
Se o módulo já estiver instalado, você poderá pular esta etapa e executar o Connect-ExchangeOnline sem carregar manualmente o módulo primeiro.
Após instalar o módulo, abra uma janela do PowerShell e carregue o módulo executando o seguinte comando:
Import-Module ExchangeOnlineManagement
Etapa 2: conectar e autenticar
Observação
Os comandos de conexão provavelmente falharão se o caminho do perfil da conta usada para conectar contiver caracteres especiais do PowerShell (por exemplo, $). A solução alternativa é conectar-se usando uma conta diferente que não tenha caracteres especiais no caminho do perfil.
O comando que você precisa executar usa a seguinte sintaxe:
Connect-ExchangeOnline [-UserPrincipalName <UPN>] [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-LoadCmdletHelp] [-DelegatedOrganization <String>] [-SkipLoadingFormatData] [-DisableWAM]
Para informações detalhadas sobre sintaxe e parâmetros, confira Connect-ExchangeOnline.
UPN é sua conta no formato de nome UPN> (por exemplo, ).<
navin@contoso.onmicrosoft.comQuando você usa o parâmetro ExchangeEnvironmentName, não é necessário usar os parâmetros ConnectionUri ou AzureADAuthorizationEndPointUrl. Os valores comuns para o parâmetro ExchangeEnvironmentName são descritos na tabela a seguir:
Ambiente Valor Microsoft 365 ou Microsoft 365 GCC n/d* Microsoft 365 GCC High O365USGovGCCHighMicrosoft 365 DoD O365USGovDoDOffice 365 Alemanha O365GermanyCloudOffice 365 operado pela 21Vianet O365China* O valor
O365Defaultnecessário também é o valor padrão, portanto, você não precisa usar o parâmetro ExchangeEnvironmentName em ambientes Microsoft 365 ou Microsoft 365 GCC.Na versão 3.7.0 ou posterior, a ajuda da linha de comando para cmdlets do PowerShell do Exchange Online não é mais carregada por padrão. Use a opção LoadCmdletHelp para que a ajuda para cmdlets do PowerShell do Exchange Online esteja disponível para o cmdlet Get-Help.
O parâmetro DelegatedOrganization especifica a organização do cliente que você deseja gerenciar como um parceiro autorizado da Microsoft. Para obter mais informações, consulte os exemplos de conexão mais adiante neste artigo.
Dependendo da natureza da sua organização, você pode omitir o parâmetro UserPrincipalName no comando de conexão. Em vez disso, você insere o nome de usuário e a senha ou seleciona as credenciais armazenadas após executar o comando Connect-ExchangeOnline. Se não funcionar, será necessário usar o parâmetro UserPrincipalName.
Se não estiver usando a MFA, você pode usar o parâmetro Credential em vez do parâmetro UserPrincipalName. Primeiro, execute o comando
$Credential = Get-Credential, insira seu nome de usuário e senha e use o nome da variável para o parâmetro Credential (-Credential $Credential). Se não funcionar, será necessário usar o parâmetro UserPrincipalName.Use a opção SkipLoadingFormatData para evitar erros ao conectar-se ao PowerShell do Exchange Online de dentro de um serviço do Windows.
O PowerShell 7 requer a versão 2.0.4 ou posterior.
Na versão 3.7.2 ou posterior, o comutador DisableWAM está disponível para desabilitar o WAM (Gerenciador de Contas da Web) se você receber erros de conexão relacionados ao WAM.
Os exemplos de conexão nas seções a seguir usam autenticação moderna e são incapazes de usar a autenticação Básica.
Conecte-se ao PowerShell do Exchange Online com um prompt de entrada interativo
Os exemplos a seguir funcionam no Windows PowerShell 5.1 e PowerShell 7 para contas com ou sem MFA:
Este exemplo se conecta ao Exchange Online PowerShell em uma organização do Microsoft 365 ou Microsoft 365 GCC:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.comEste exemplo se conecta ao Exchange Online PowerShell em uma organização do Microsoft GCC High:
Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHighEste exemplo se conecta ao Exchange Online PowerShell em uma organização do Microsoft 365 DoD:
Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoDEste exemplo se conecta ao Exchange Online PowerShell em uma organização do Office 365 Alemanha:
Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
Na janela de entrada que é aberta, insira sua senha e selecione Entrar.
Observação
No PowerShell 7, o SSO (logon único) baseado em navegador é usado por padrão, portanto, o prompt de entrada é aberto em seu navegador da Web padrão, em vez de uma caixa de diálogo autônoma.
Somente MFA: um código de verificação é gerado e entregue com base na opção de resposta configurada para sua conta (por exemplo, uma mensagem de texto ou o aplicativo Microsoft Authenticator em seu dispositivo).
Na janela de verificação que é aberta, insira o código de verificação e selecione Verificar.
Métodos de conexão exclusivos do PowerShell 7
No PowerShell 7 para contas sem MFA, este exemplo solicita credenciais na janela do PowerShell:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredentialNo PowerShell 7 para contas com ou sem MFA, este exemplo usa outro computador para autenticar e concluir a conexão. Normalmente, você usa esse método em computadores que não têm navegadores da Web (os usuários não conseguem inserir suas credenciais no PowerShell 7):
Execute o seguinte comando no computador em que você deseja se conectar:
Connect-ExchangeOnline -DeviceO comando connection aguarda a seguinte saída:
Para entrar, use um navegador da web para abrir a página https://microsoft.com/devicelogin e insira o código <XXXXXXXXX> para autenticação.
Observe o valor do <código XXXXXXXXX> .
Em qualquer outro dispositivo com um navegador da Web e acesso à Internet, abra https://microsoft.com/devicelogin e insira o <valor do código XXXXXXXXX> da etapa anterior.
Insira suas credenciais nas páginas resultantes.
No prompt de confirmação, selecione Continuar. A próxima mensagem deve indicar êxito e você pode fechar o navegador ou a guia.
O comando da etapa 1 continua conectando você ao PowerShell do Exchange Online.
Conectar-se ao PowerShell do Exchange Online sem um prompt de entrada (scripts autônomos)
Para obter instruções completas, consulte Autenticação somente do aplicativo para scripts autônomos no Exchange Online PowerShell e Conformidade do & Segurança no PowerShell.
Conectar-se ao PowerShell do Exchange Online em organizações de clientes
Para obter mais informações sobre parceiros e organizações de clientes, consulte os seguintes artigos:
- O que é o programa CSP (Provedor de Soluções na Nuvem)?
- Introdução aos GDAP (privilégios de administrador delegado granular)
Este exemplo se conecta às organizações do cliente nos seguintes cenários:
Conecte-se a uma organização do cliente usando uma conta CSP.
Conecte-se a uma organização do cliente usando um GDAP.
Conectar-se a uma organização do cliente como convidado.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Conecte-se ao PowerShell do Exchange Online usando a identidade gerenciada
Para obter mais informações, consulte Usar identidades gerenciadas do Azure para se conectar ao Windows PowerShell do Exchange Online.
Identidade gerenciada atribuída ao sistema:
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"Identidade gerenciada atribuída ao usuário:
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
Etapa 3: Desconecte-se quando terminar
Certifique-se de desconectar a sessão quando terminar. Se você fechar a janela do PowerShell sem desconectar a sessão, poderá usar todas as sessões disponíveis e precisará aguardar até que as sessões expirem. Para desconectar a sessão, execute o seguinte comando:
Disconnect-ExchangeOnline
Para desconectar silenciosamente sem um prompt de confirmação, execute o seguinte comando:
Disconnect-ExchangeOnline -Confirm:$false
Observação
O comando disconnect provavelmente falhará se o caminho do perfil da conta usada para conectar contiver caracteres especiais do PowerShell (por exemplo, $). A solução alternativa é conectar-se usando uma conta diferente que não tenha caracteres especiais no caminho do perfil.
Como você sabe que se conectou com êxito?
Se nenhum erro aparecer, a conexão terá sido estabelecida. Um teste rápido é executar um cmdlet do PowerShell do Exchange Online, por exemplo, Get-AcceptedDomain, e ver os resultados.
Caso você receba erros, verifique os seguintes requisitos:
Um problema comum é uma senha incorreta. Execute as etapas de conexão novamente e preste muita atenção ao nome de usuário e senha que você usa.
A conta que você usa para se conectar deve estar habilitada para acesso ao PowerShell. Para obter mais informações, confira Habilitar ou desabilitar o acesso ao PowerShell do Exchange Online.
O tráfego da porta TCP 80 precisa estar aberto entre seu computador local e o Microsoft 365. Provavelmente ele está aberto, mas é algo a ser considerado caso a sua organização tenha uma política de acesso à Internet restritiva.
Se sua organização usa autenticação federada e seu provedor de identidade (IDP) e/ou serviço de token de segurança (STS) não estiver disponível ao público, você não poderá usar uma conta federada para se conectar ao PowerShell do Exchange Online. Em vez disso, crie e use uma conta não federada no Microsoft 365 para se conectar ao PowerShell do Exchange Online.
As conexões baseadas em REST com o PowerShell do Exchange Online exigem o módulo PowerShellGet. Por dependência, o módulo PowerShellGet requer o módulo PackageManagement. Você receberá erros se tentar se conectar sem ter os dois módulos instalados. Por exemplo, você pode ver o seguinte erro:
O termo 'Update-ModuleManifest' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente.
Para obter mais informações sobre os requisitos do módulo PowerShellGet e PackageManagement, consulte PowerShellGet para conexões baseadas em REST no Windows.
Depois de se conectar, você pode receber um erro parecido com este:
Não foi possível carregar o arquivo ou assembly 'System.IdentityModel.Tokens.Jwt,Version=<Version>, Culture=neutral, PublicKeyToken=<TokenValue>'. Não foi possível localizar ou carregar um arquivo específico.
Esse erro ocorre quando o módulo do PowerShell do Exchange Online entra em conflito com outro módulo importado para o runspace. Tente se conectar em uma nova janela do Windows PowerShell antes de importar outros módulos.
Apêndice: Comparação dos métodos de conexão antigos e novos
Esta seção tenta comparar métodos de conexão mais antigos substituídos pelo módulo do PowerShell do Exchange Online. A autenticação Básica e os procedimentos de token OAuth são incluídos apenas para referência histórica e não têm mais suporte.
Conectar sem autenticação multifator
Módulo do PowerShell do Exchange Online com prompt de credencial interativo:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comMódulo do PowerShell do Exchange Online sem prompt de credencial interativo:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) Connect-ExchangeOnline -Credential $o365credAutenticação básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession com token OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectar-se com autenticação multifator
Módulo do PowerShell do Exchange Online com prompt de credencial interativo:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comAutenticação Básica: não disponível.
New-PSSession com token OAuth: não disponível.
Conectar-se a uma organização do cliente com uma conta CSP
Módulo do PowerShell do Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticação básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession com token OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectar-se a uma organização do cliente usando GDAP
Módulo do PowerShell do Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticação básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession com token OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectar-se a uma organização do cliente como convidado
Módulo do PowerShell do Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticação básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession com token OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conecte-se para executar scripts autônomos
Módulo do PowerShell do Exchange Online:
Impressão digital do certificado:
Observação
O parâmetro CertificateThumbprint tem suporte apenas no Microsoft Windows.
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Objeto de certificado:
Connect-ExchangeOnline -Certificate <%X509Certificate2Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Arquivo de certificado:
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "<Password>" -AsPlainText -Force) -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Para obter mais informações, consulte Autenticação somente de aplicativo para scripts autônomos no Exchange Online PowerShell e Conformidade de & Segurança no PowerShell.
Autenticação básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession com token OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@contoso.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectar-se usando a identidade gerenciada
Módulo do PowerShell do Exchange Online:
Identidade gerenciada atribuída ao sistema:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"Identidade gerenciada atribuída ao usuário:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com" -ManagedIdentityAccountId <UserAssignedManagedIdentityPrincipalIdValue>
Para obter mais informações, consulte Usar identidades gerenciadas do Azure para se conectar ao Windows PowerShell do Exchange Online.
Autenticação Básica: não disponível.
New-PSSession com token OAuth: não disponível.