Controlar o acesso remoto PowerShell aos servidores Exchange

O PowerShell Remoto no Microsoft Exchange permite que você gerencie sua organização do Exchange a partir de um computador remoto que esteja em sua rede interna ou na Internet. Você pode desabilitar ou habilitar a capacidade de um usuário de se conectar a um servidor exchange usando o PowerShell remoto e o Shell de Gerenciamento do Exchange. Para obter mais informações sobre o PowerShell remoto, consulte Exchange Server PowerShell (Shell de Gerenciamento do Exchange).

Para obter tarefas de gerenciamento adicionais relacionadas ao PowerShell remoto, consulte Conectar-se a servidores do Exchange usando o PowerShell remoto.

Do que você precisa saber para começar?

  • Tempo estimado para concluir cada procedimento: menos de 5 minutos

  • Por padrão, todas as contas de usuário têm acesso ao PowerShell remoto. No entanto, para realmente usar o PowerShell remoto para se conectar a um servidor Exchange, o usuário precisa ser membro de um grupo de funções de gerenciamento ou ser atribuído diretamente a uma função de gerenciamento que habilite o usuário a executar cmdlets do Exchange. Para obter mais informações sobre grupos de funções e funções de gerenciamento, consulte Exchange Server permissões.

    Importante

    Na pressa de desabilitar rapidamente e globalmente o acesso remoto do PowerShell em sua organização, cuidado com comandos como Get-User | Set-User -RemotePowerShellEnabled $false sem considerar contas de administrador, contas de serviço ou caixas de correio de monitoramento de integridade que precisam de acesso remoto do PowerShell. Use os procedimentos neste artigo para remover seletivamente o acesso remoto do PowerShell ou preservar 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.com' -and $_.UserPrincipalName -ne 'admin2@contoso.com'...} | Set-User -RemotePowerShellEnabled $false.

    Se você acidentalmente se bloquear fora do acesso remoto do PowerShell, precisará usar o método altamente desencorajado de carregar diretamente o snap-in do Exchange Management Shell (Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) para dar acesso a si mesmo. Minimize a hora e as alterações que você está usando com esse método. Corrija uma conta e abra o Shell de Gerenciamento do Exchange para fazer alterações adicionais.

  • Você só pode usar o PowerShell para executar esses procedimentos. Para saber como abrir o Shell de Gerenciamento do Exchange em sua organização do Exchange local, confira Abra o Shell de Gerenciamento do Exchange.

  • Para obter informações detalhadas sobre a sintaxe do filtro OPATH no Exchange, consulte Informações adicionais de sintaxe OPATH.

  • Para executar este procedimento ou estes procedimentos, você precisa receber permissões. Para ver quais permissões você precisa, consulte o artigo "Remote PowerShell" na infraestrutura do Exchange e permissões do PowerShell .

  • Se você estiver usando ferramentas de terceiros para personalizar endereços de email de usuários, precisará desabilitar políticas de endereço de email nos usuários afetados antes de fazer os procedimentos neste artigo. Se você não fizer isso, os comandos Set-User alterarão os endereços de email dos usuários para corresponder à política de endereço de email aplicável. Para desabilitar políticas de endereço de email nos usuários, defina o valor do parâmetro EmailAddressPolicyEnabled como $false no cmdlet Set-Mailbox .

Dica

Está com problemas? Peça ajuda nos fóruns Exchange Server.

Exibir o acesso remoto do PowerShell para usuários

Para exibir o acesso remoto do PowerShell status para um usuário específico, substitua <UserIdentity> pelo nome ou nome da entidade de usuário (UPN) do usuário e execute o seguinte comando:

Get-User -Identity "<UserIdentity>" | Format-List RemotePowerShellEnabled

Para exibir o status de acesso remoto do PowerShell para todos os usuários, execute o seguinte comando:

Get-User -ResultSize unlimited | Format-Table Name,DisplayName,RemotePowerShellEnabled -AutoSize

Para exibir todos os usuários que não têm acesso ao PowerShell remoto, execute o seguinte comando:

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'

Para exibir todos os usuários que têm acesso ao PowerShell remoto, execute o seguinte comando:

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'

Use o Shell de Gerenciamento do Exchange para habilitar ou desabilitar o acesso ao PowerShell remoto para um usuário

Este exemplo desabilita o acesso remoto do PowerShell para o usuário chamado Therese Lindqvist.

Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false

Este exemplo habilita o acesso ao PowerShell remoto para a usuária chamada Lara Cardoso.

Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true

Usar o Shell de Gerenciamento do Exchange para desabilitar o acesso remoto do PowerShell para muitos 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 filtravel exclusivo. Alguns atributos, como Title, Department, informações de endereço e número de telefone, ficam visíveis apenas quando você usa o cmdlet Get-User. Outros atributos, como CustomAttribute1-15, ficam visíveis somente quando você usa o 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 remoto.

Filtrar usuários com base em um atributo existente

Para desabilitar o acesso ao PowerShell remoto 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 $_ -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $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 seguinte sintaxe:

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

Este exemplo usa o arquivo de texto C:\My Documents\NoPowerShell.txt para identificar os usuários pelo nome da entidade de usuário (UPN). O arquivo de texto deve conter um UPN em cada linha como esta:

akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com

Depois de preencher o arquivo de texto com as contas de usuário que deseja atualizar, execute os seguintes comandos:

$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}