Compartilhar via


Controlar o acesso remoto PowerShell aos servidores Exchange

O PowerShell remoto no Microsoft Exchange permite-lhe gerir a sua organização do Exchange a partir de um computador remoto que esteja na sua rede interna ou a partir da Internet. Pode desativar ou ativar a capacidade de um utilizador ligar a um servidor Exchange através do PowerShell remoto e da Shell de Gestão do Exchange. Para obter mais informações sobre o PowerShell remoto, veja Exchange Server PowerShell (Shell de Gestão 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 gestão, veja permissões de Exchange Server.

    Importante

    À pressa para desativar de forma rápida e global o acesso remoto ao PowerShell na sua organização, tenha cuidado com comandos como Get-User | Set-User -RemotePowerShellEnabled $false , por exemplo, sem considerar contas de administrador, contas de serviço ou caixas de correio de monitorização do estado de funcionamento que precisam de acesso remoto ao PowerShell. Utilize os procedimentos neste artigo para remover seletivamente o acesso remoto ao PowerShell ou preservar o acesso para quem precisa dele através da 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 bloquear acidentalmente o acesso remoto ao PowerShell, terá de utilizar o método altamente desencorajado de carregar diretamente o snap-in da Shell de Gestão do Exchange (Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) para lhe conceder acesso. Minimize a hora e as alterações que está a utilizar com este método. Corrija uma conta e abra a Shell de Gestão do Exchange para fazer alterações adicionais.

  • Só pode utilizar o PowerShell para efetuar estes 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, veja Informações adicionais sobre sintaxe OPATH.

  • Para executar este procedimento ou estes procedimentos, você precisa receber permissões. Para ver as permissões de que precisa, veja a entrada "Remote PowerShell" no artigo Exchange infrastructure and PowerShell permissions (Infraestrutura do Exchange e permissões do PowerShell ).

  • Se estiver a utilizar ferramentas que não sejam da Microsoft para personalizar endereços de e-mail de utilizadores, tem de desativar as políticas de endereços de e-mail nos utilizadores afetados antes de efetuar os procedimentos neste artigo. Se não o fizer, os comandos Definir Utilizador alteram os endereços de e-mail dos utilizadores para corresponderem à política de endereço de e-mail aplicável. Para desativar as políticas de endereço de e-mail nos utilizadores, defina o valor do parâmetro EmailAddressPolicyEnabled para $false no cmdlet Set-Mailbox .

Dica

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

Ver o acesso remoto ao PowerShell para utilizadores

Para ver o acesso remoto ao PowerShell status para um utilizador específico, substitua <UserIdentity> pelo nome ou nome principal de utilizador (UPN) do utilizador e, em seguida, execute o seguinte comando:

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

Para apresentar o acesso remoto ao PowerShell status para todos os utilizadores, execute o seguinte comando:

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

Para apresentar todos os utilizadores que não têm acesso ao PowerShell remoto, execute o seguinte comando:

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

Para apresentar todos os utilizadores 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 desativa o acesso remoto ao PowerShell para o utilizador com o nome 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

Utilizar a Shell de Gestão do Exchange para desativar o acesso remoto ao PowerShell para muitos utilizadores

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, 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.

  • 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 PowerShell remoto.

Filtrar usuários com base em um atributo existente

Para desativar o acesso ao PowerShell remoto 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 $_ -RemotePowerShellEnabled $false}

Este exemplo remove o acesso ao PowerShell remoto para todos os utilizadores 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 desativar o acesso ao PowerShell remoto para uma lista de utilizadores específicos, utilize a seguinte sintaxe:

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

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

Este exemplo utiliza o ficheiro de texto C:\O meu Documents\NoPowerShell.txt para identificar os utilizadores pelo respetivo nome principal de utilizador (UPN). O ficheiro de texto tem de conter um UPN em cada linha como esta:

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

Depois de preencher o ficheiro de texto com as contas de utilizador que pretende atualizar, execute os seguintes comandos:

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

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