Habilitar ou desabilitar o acesso ao Exchange Online PowerShell
Exchange Online o PowerShell é a interface administrativa que permite aos administradores gerir o Exchange Online parte de uma organização do Microsoft 365 a partir da linha de comandos (incluindo muitas funcionalidades de segurança no Proteção do Exchange Online e Microsoft Defender para Office 365).
Por predefinição, todas as contas no Microsoft 365 têm permissão para utilizar Exchange Online PowerShell. Este acesso não fornece capacidades administrativas aos utilizadores. Ainda estão limitados pelo controlo de acesso baseado em funções (RBAC). Por exemplo, podem configurar algumas definições na sua própria caixa de correio e gerir grupos de distribuição que possuem, mas não muito mais.
Os administradores podem utilizar os procedimentos neste artigo para desativar ou ativar a capacidade de um utilizador se ligar ao Exchange Online PowerShell.
Do que você precisa saber para começar?
Tempo estimado para concluir cada procedimento: menos de 5 minutos
Os procedimentos neste artigo só estão disponíveis no Exchange Online PowerShell. Para se conectar ao PowerShell do Exchange Online, confira Conectar ao PowerShell do Exchange Online.
Tem de lhe ser atribuídas permissões antes de poder efetuar os procedimentos neste artigo. Você tem as seguintes opções:
- Exchange Online RBAC: associação nos grupos de funções Gestão da Organização ou Gestão de Destinatários.
- Microsoft Entra RBAC: a associação nas funções administrador do Exchange ou Administrador* Global dá aos utilizadores as permissões e permissões necessárias para outras funcionalidades no Microsoft 365.
Importante
Com a pressa de desativar rapidamente e globalmente o acesso ao PowerShell na sua organização com base na cloud, tenha cuidado com comandos como, por
Get-User | Set-User -EXOModuleEnabled $false
exemplo, sem considerar contas de administrador. Utilize os procedimentos neste artigo para remover seletivamente o acesso ao PowerShell ou preservar o acesso para quem precisar dele através da 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 bloquear acidentalmente o acesso ao PowerShell, crie uma nova conta de administrador no Centro de administração do Microsoft 365 e, em seguida, utilize essa conta para lhe conceder acesso ao PowerShell através dos procedimentos neste artigo.
* A Microsoft recomenda que utilize funções com menos permissões. A utilização de contas com permissões mais baixas 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, veja Informações adicionais sobre a sintaxe OPATH.
Dica
Está com problemas? Peça ajuda nos fóruns do Exchange. Visite os fóruns em: Exchange Online ou Proteção do Exchange Online.
Habilitar ou desabilitar o acesso ao PowerShell remoto para um usuário
Este exemplo desativa o acesso ao Exchange Online PowerShell para o utilizador david@contoso.onmicrosoft.com
.
Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false
Este exemplo permite o acesso ao Exchange Online PowerShell para o utilizador chris@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 utilizadores com base num atributo existente: este método pressupõe que todas as contas de utilizador de destino partilham um atributo filtráveis exclusivo. Alguns atributos (por exemplo, Título, Departamento, informações de endereço e número de telefone) estão disponíveis apenas a partir do cmdlet Get-User . Outros atributos (por exemplo, CustomAttribute1 a CustomAttribute15) só estão disponíveis no cmdlet Get-Mailbox .
- Utilizar uma lista de utilizadores específicos: depois de gerar a lista de utilizadores específicos, pode utilizar essa lista para desativar o respetivo acesso ao Exchange Online PowerShell.
Filtrar usuários com base em um atributo existente
Para desativar o acesso ao Exchange Online PowerShell para qualquer número de utilizadores com base num atributo existente, utilize 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 seguinte utiliza o ficheiro de texto C:\O meu Documents\NoPowerShell.txt para identificar os utilizadores pelas respetivas contas. O ficheiro de texto tem de 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 ficheiro de texto com as contas de utilizador que pretende atualizar, execute os seguintes comandos:
$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}
Ver o status de acesso do Exchange Online PowerShell para utilizadores
Dica
A propriedade mais EXOModuleEnabled
recente não está disponível para utilização 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, por isso, utilize a RemotePowerShellEnabled
propriedade com o parâmetro Filter no cmdlet Get-User .
Para ver o status de acesso do PowerShell para um utilizador específico, substitua <UserIdentity> pelo nome ou nome principal de utilizador (UPN) do utilizador e execute o seguinte comando:
Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled
Para apresentar o Exchange Online status de acesso do PowerShell para todos os utilizadores, execute o seguinte comando:
Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled
Para apresentar todos os utilizadores que não têm acesso ao Exchange Online PowerShell, execute o seguinte comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'
Para apresentar todos os utilizadores que têm acesso ao Exchange Online PowerShell, execute o seguinte comando:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'