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.
O Exchange Online PowerShell é a interface administrativa que permite gerenciar a parte do Exchange Online da sua organização do Microsoft 365 a partir da linha de comando (incluindo muitos recursos de segurança internos para todas as caixas de correio e proteções em nuvem no Microsoft Defender para Office 365).
Por padrão, todas as contas no Microsoft 365 têm permissão para usar o PowerShell do Exchange Online. Esse acesso não fornece aos usuários recursos administrativos. Eles ainda estão limitados pelo RBAC (controle de acesso baseado em função). Por exemplo, eles podem definir algumas configurações em sua própria caixa de correio e gerenciar grupos de distribuição que possuem, mas não muito mais.
Os administradores podem usar os procedimentos deste artigo para desabilitar ou habilitar a capacidade de um usuário de se conectar ao PowerShell do Exchange Online.
Do que você precisa saber para começar?
Tempo estimado para concluir cada procedimento: menos de 5 minutos
Os procedimentos neste artigo estão disponíveis apenas no PowerShell do Exchange Online. Para se conectar ao PowerShell do Exchange Online, confira Conectar ao PowerShell do Exchange Online.
É necessário ter permissões atribuídas antes de executar os procedimentos descritos neste artigo. Você tem as seguintes opções:
- Permissões do Exchange Online: Participação nos grupos de funções Gerenciamento da Organização ou Gerenciamento de Destinatários.
- Microsoft Entra RBAC: a associação nas funções de Administrador do Exchange ou Administrador Global* concede aos usuários as permissões necessárias e permissões para outros recursos do Microsoft 365.
Importante
Na pressa de desabilitar rápida e globalmente o acesso ao PowerShell em sua organização baseada em nuvem, tome cuidado com comandos, como
Get-User | Set-User -EXOModuleEnabled $falsesem considerar contas de administrador. Use os procedimentos deste artigo para remover seletivamente o acesso ao PowerShell ou preserve o acesso para aqueles que precisam dele usando a seguinte sintaxe no comando de remoção global:Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false.Se você acidentalmente bloquear o acesso ao PowerShell, crie uma nova conta de administrador no Centro de administração do Microsoft 365 e, em seguida, use essa conta para obter acesso ao PowerShell usando os procedimentos neste artigo.
* A Microsoft recomenda usar funções com o menor número possível de permissões. Usar contas com menos permissões ajuda a melhorar a segurança da sua organização. O Administrador Global é uma função altamente privilegiada que deve ser limitada a cenários de emergência quando não for possível usar uma função existente.
Para obter informações detalhadas sobre a sintaxe do filtro OPATH no Exchange Online, consulte Informações adicionais sobre a sintaxe do OPATH.
Habilitar ou desabilitar o acesso ao PowerShell remoto para um usuário
Este exemplo desabilita o acesso ao PowerShell do Exchange Online para o usuáriodavid@contoso.onmicrosoft.com.
Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false
Este exemplo permite o acesso ao PowerShell do Exchange Online para o usuáriochris@contoso.onmicrosoft.com.
Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true
Desabilitar o acesso ao PowerShell remoto para vários usuários
Para impedir o acesso ao PowerShell remoto para um grupo específico de usuários existentes, você tem as seguintes opções:
- Filtrar usuários com base em um atributo existente: esse método pressupõe que todas as contas de usuário de destino compartilhem um atributo filtrável exclusivo. Alguns atributos (por exemplo, Título, Departamento, informações de endereço e número de telefone) estão disponíveis somente no cmdlet Get-User . Outros atributos (por exemplo, CustomAttribute1 a CustomAttribute15) estão disponíveis somente no cmdlet Get-Mailbox .
- Use uma lista de usuários específicos: depois de gerar a lista de usuários específicos, você pode usar essa lista para desabilitar o acesso deles ao PowerShell do Exchange Online.
Filtrar usuários com base em um atributo existente
Para desabilitar o acesso ao PowerShell do Exchange Online para qualquer número de usuários com base em um atributo existente, use a seguinte sintaxe:
$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}
Este exemplo remove o acesso ao PowerShell remoto para todos os usuários cujo atributo Title contém o valor "Sales Associate".
$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"
$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}
Usar uma lista de usuários específicos
Para desabilitar o acesso ao PowerShell remoto para uma lista de usuários específicos, use a sintaxe a seguir.
$<VariableName> = Get-Content <text file>
$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}
O exemplo a seguir usa o arquivo de texto C:\Meus Documents\NoPowerShell.txt para identificar os usuários por suas contas. O arquivo de texto deve conter uma conta em cada linha, da seguinte forma:
akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com
Depois de preencher o arquivo de texto com as contas de usuário que você deseja atualizar, execute os seguintes comandos:
$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}
Exibir o status de acesso do Exchange Online PowerShell para usuários
Dica
A propriedade mais recente EXOModuleEnabled não está disponível para uso com o parâmetro Filter no cmdlet Get-User , mas os valores da propriedade e da EXOModuleEnabled propriedade mais antiga RemotePowerShellEnabled são sempre os mesmos, portanto, use a RemotePowerShellEnabled propriedade com o parâmetro Filter no cmdlet Get-User .
Para exibir o status de acesso ao PowerShell de um usuário específico, substitua <UserIdentity> pelo nome ou nome UPN (nome principal do usuário) do usuário e execute o seguinte comando:
Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled
Para exibir o status de acesso do PowerShell do Exchange Online para todos os usuários, execute o seguinte comando:
Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled
Para exibir todos os usuários que não têm acesso ao PowerShell do Exchange Online, execute o seguinte comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'
Para exibir todos os usuários que têm acesso ao PowerShell do Exchange Online, execute o seguinte comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'