Use o Cmdlet Get-Mailbox para Exportar a Lista de Caixas de Correio no Exchange
Sep 26, 2024
O que é um Cmdlet Get-Mailbox?
O cmdlet Get-Mailbox é um comando chave no Exchange Management Shell (para Exchange Server) e no módulo PowerShell do Exchange Online (para Office 365). É utilizado para recuperar informações sobre caixas de correio em um ambiente Exchange. Seja lidando com caixas de correio de usuários, caixas de correio vinculadas, caixas de correio compartilhadas ou caixas de correio de recursos, com o Get-Mailbox os administradores podem listar todas as caixas de correio dentro de um escopo especificado, como um banco de dados, servidor ou unidade organizacional, ou recuperar propriedades detalhadas para uma única caixa de correio. Você também pode filtrar os resultados para retornar apenas as caixas de correio que atendem a critérios específicos.
O cmdlet Get-Mailbox do PowerShell suporta muitos parâmetros que podem ser usados para personalizar as informações retornadas. Parâmetros como -Properties permitem obter um detalhamento abrangente dos atributos das caixas de correio. A saída do Get-Mailbox pode ser facilmente exportada para formatos CSV ou JSON, facilitando a integração com outras ferramentas e plataformas. O cmdlet Get-Mailbox também oferece a flexibilidade da programação em PowerShell em ambientes Exchange.
Disponibilidade tanto no Exchange local quanto no serviço baseado na nuvem
O cmdlet Get-Mailbox do PowerShell está disponível tanto em ambientes Exchange Server locais quanto no Exchange Online (Office 365), embora existam diferenças na implementação e nos recursos disponíveis. Foi introduzido como parte do Exchange Management Shell no Exchange Server 2007.
Conteúdo relacionado selecionado:
Servidor Exchange On-Premises
Get-Mailbox está disponível no Exchange Server 2010, 2013, 2016 e 2019. Get-Mailbox é utilizado através do Exchange Management Shell (EMS) no Exchange local ou via PowerShell carregando o módulo Exchange. Inclui parâmetros para filtragem por base de dados, unidade organizacional, tipo de destinatário e mais. Produz várias propriedades de caixas de correio como nome, endereço de email e base de dados da caixa de correio.
Exchange Online (Office 365)
O Get-Mailbox via PowerShell pode ser usado para o Exchange Online, que é acessado por meio de conexões remotas de PowerShell. Este módulo oferece capacidades de gerenciamento baseadas na nuvem e é acessado remotamente. Semelhante ao Exchange local, mas pode incluir parâmetros adicionais ou recursos otimizados para o ambiente na nuvem. A saída inclui propriedades relevantes para o gerenciamento na nuvem.
Recomendação para usar o cmdlet Get-EXOMailbox no Exchange Online
O cmdlet Get-EXOMailbox faz parte do módulo Exchange Online PowerShell e é utilizado para recuperar informações sobre caixas de correio no Exchange Online (parte do Office 365). Este cmdlet é uma alternativa ao Get-Mailbox com melhorias para o Exchange Online. O Get-EXOMailbox é otimizado para ambientes em nuvem e pode oferecer melhor desempenho e recursos adicionais projetados para o Office 365. Este cmdlet oferece opções de filtragem e consulta mais avançadas que são especialmente úteis em uma configuração baseada na nuvem e é melhor integrado com outros serviços e recursos do Office 365.
Recomendações para Usar Get-EXOMailbox
- Ao trabalhar no Exchange Online, use Get-EXOMailbox em vez de Get-Mailbox para obter desempenho otimizado e recursos específicos da nuvem.
- Utilize o parâmetro -Filter para recuperar de forma eficiente subconjuntos de caixas de correio com base em critérios específicos, reduzindo a carga e melhorando o desempenho da consulta.
- Para grandes organizações, use -ResultSize Unlimited para garantir que você capture todas as caixas de correio relevantes. Esteja ciente das implicações de desempenho com conjuntos de dados muito grandes.
- Utilize Get-EXOMailbox em scripts do PowerShell para tarefas automatizadas de relatórios, gerenciamento e manutenção no Exchange Online.
Função do Cmdlet Get-Mailbox
O cmdlet Get-Mailbox no Exchange Server e Exchange Online é utilizado para obter informações detalhadas sobre caixas de correio. O cmdlet não modifica nenhum dado, sua função principal é coletar e exibir propriedades e configurações das caixas de correio, isso inclui dados sobre tamanhos das caixas de correio, cotas, o número de itens, último acesso e muito mais. O cmdlet oferece flexibilidade para direcionar caixas de correio específicas, conjuntos de caixas de correio ou todas as caixas de correio, dependendo dos parâmetros utilizados.
Propósito
O cmdlet Get-Mailbox recupera informações sobre caixas de correio, incluindo caixas de correio de usuários, compartilhadas, de recursos (como caixas de correio de sala, compartilhadas e de equipamentos) e outras. Ele fornece detalhes como propriedades da caixa de correio, localização e configuração.
Principais Usos
Gere listas de caixas de correio para fins de relatórios, como auditoria de tipos de caixas de correio, localizações e atributos. Recupere detalhes necessários para tarefas de gestão de caixas de correio, como configurar definições de caixa de correio ou realizar operações em massa. Ajude a diagnosticar problemas fornecendo informações específicas da caixa de correio relacionadas a configurações, quotas e mais.
Operação
Quando você executa o cmdlet Get-Mailbox, ele consulta os serviços de diretório do Exchange, Active Directory em ambientes locais, ou diretório do Exchange Online no Office 365, para recuperar informações da caixa de correio. O cmdlet busca dados do banco de dados da caixa de correio ou diretórios e os apresenta com base nos parâmetros especificados. Isso inclui propriedades como endereços de e-mail, tamanhos das caixas de correio e mais.
Output
Por padrão, Get-Mailbox exibe um conjunto de propriedades comuns como DisplayName, PrimarySmtpAddress, Database e Recipient Type. A saída pode ser personalizada usando o Select-Object para exibir propriedades adicionais ou específicas.
Parâmetros
Parâmetros como -Identity, -Database, -OrganizationalUnit e -Filter permitem que você refine a busca para caixas de correio específicas ou conjuntos de caixas de correio com base em critérios como localização do banco de dados, unidade organizacional ou atributos personalizados. -ResultSize permite controlar o número de resultados retornados, o que é útil para gerenciar o desempenho e focar em subconjuntos relevantes de dados. Get-Mailbox suporta muitos outros parâmetros para mais tarefas.
Permissões necessárias para executar o Cmdlet Get-Mailbox
São necessárias permissões específicas para executar o cmdlet Get-Mailbox no Exchange Server e no Exchange Online. Essas permissões determinam quem pode executar o cmdlet para recuperar informações da caixa de correio. Geralmente, essas permissões são atribuídas por meio do controle de acesso baseado em funções (RBAC) no Exchange. Esses papéis geralmente incluem “Gerenciamento de Destinatários”, “Gerenciamento da Organização” ou “Gerenciamento da Organização Somente Visualização”. Abaixo está uma visão detalhada das permissões necessárias para executar o cmdlet Get-Mailbox.
Exchange Server (On-Premises)
Em um ambiente Exchange Server local, as permissões são normalmente concedidas por meio de role-based access control (RBAC). As funções RBAC podem ser atribuídas em vários escopos, desde toda a organização até bancos de dados de caixas de correio específicos.
Função de Gerenciamento de Destinatário
Para a gestão geral de caixas de correio, incluindo a execução de Get-Mailbox, os usuários são normalmente adicionados ao grupo de funções “Recipient Management”. Este grupo de funções inclui papéis que permitem criar, gerir e remover caixas de correio, entre outras tarefas relacionadas com destinatários.
Função de Gestão de Organização
Para privilégios administrativos de alto nível, incluindo a capacidade de executar todos os cmdlets relacionados a caixas de correio, o grupo de funções “Organization Management” pode ser utilizado, concedendo permissões em toda a organização Exchange.
Função de Gerenciamento da Organização Apenas Visualização
Este papel fornece acesso somente leitura às configurações organizacionais, incluindo a capacidade de executar Get-Mailbox, mas sem a habilidade de modificar as configurações.
Funções RBAC personalizadas
Você também pode criar funções personalizadas que incluam especificamente o cmdlet Get-Mailbox, personalizando as permissões para necessidades específicas sem conceder acesso mais amplo do que o necessário.
Exchange Online (Office 365)
No Exchange Online para Get-Mailbox, as permissões são gerenciadas de forma semelhante através do RBAC, parte da estrutura geral de permissões do Office 365, todos os papéis mencionados acima para o servidor Exchange local também estão disponíveis, mas existem alguns papéis de nível superior mencionados abaixo, que também têm permissões para executar o cmdlet Get-Mailbox.
Administrador Global
Os usuários com a função de Administrador Global têm permissões para executar Get-Mailbox juntamente com outros cmdlets administrativos em toda a organização do Exchange Online.
Função de Administrador do Exchange
Específico para o Exchange Online, a função de Exchange Administrator fornece as permissões necessárias para gerenciar as configurações do Exchange, gerenciamento de objetos, incluindo a execução de Get-Mailbox.
Funções de Administrador Personalizadas
O Office 365 permite a criação de funções de administrador personalizadas, como no Exchange local. Uma função personalizada pode incluir especificamente o cmdlet Get-Mailbox, juntamente com quaisquer outros cmdlets necessários, oferecendo controle preciso sobre as permissões.
Sintaxe para o Cmdlet Get-Mailbox
Sintaxe Básica
O uso mais direto do cmdlet Get-Mailbox é obter todas as caixas de correio usando o PowerShell. O cmdlet retorna uma lista resumida de todas as caixas de correio quando usado sem quaisquer parâmetros, incluindo atributos primários como DisplayName, Alias, ServerName, ProhibitSendQuota e outros, dependendo do ambiente.
Get-Mailbox
Sintaxe geral
A estrutura geral do Get-Mailbox com vários parâmetros é a seguinte.
Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
Abaixo está a sintaxe geral com um parâmetro
Get-Mailbox [-Parameter <value>]
Conteúdo relacionado selecionado:
Parâmetros comuns do Get-Mailbox
Os seguintes são parâmetros comumente usados do Get-Mailbox:
Get-Mialbox Parâmetros | Syntax |
|---|---|
|
-Parâmetro de Identity |
Get-Mailbox -Identity “BarbaraCole” |
|
-Parâmetro de Filtro |
Get-Mailbox -Filter {Name -like “Bar*”} |
|
-Parâmetro de Banco de Dados |
Get-Mailbox -Database “ Mailbox Database 1767124038″ |
|
-OrganizationalUnit Parameter |
Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL” |
|
-Parâmetro de Arbitragem |
Get-Mailbox -Arbitration |
|
-AuditLog Paramter |
Get-Mailbox -AuditLog |
|
-RecipientTypeDetails Parâmetro |
Get-Mailbox -RecipientTypeDetails SharedMailbox |
|
-ResultSize Parameter |
Get-Mailbox -ResultSize 10 |
|
-Parâmetro SoftDeletedMailbox |
Get-Mailbox -SoftDeletedMailbox |
|
-Anr |
Get-Mailbox -Anr “Adita” |
|
-SortBy |
Get-Mailbox -SortBy Name |
Vamos olhar para cada um deles
-Parâmetro de Identity
O parâmetro -Identity especifica a caixa de correio a ser recuperada. Ele pode aceitar várias formas de identificadores, como o GUID da caixa de correio, Nome Distinto (DN), Domínio\Nome de Usuário, Nome Principal do Usuário (UPN), Legacy Exchange DN, endereço SMTP ou Alias. Este parâmetro pode ser usado para acessar rapidamente informações sobre uma caixa de correio específica.
Get-Mailbox -Identity "BarbaraCole"
-Parâmetro de Filtro
O parâmetro -Filter permite consultas mais complexas. É utilizado para definir condições que identificam exatamente o conjunto de caixas de correio de interesse, com base em atributos como departamento, atributos personalizados ou tamanho da caixa de correio.
Get-Mailbox -Filter {Name -like "Bar*"}
Get-Mailbox -Filter {DisplayName -like "Bar*"}
Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
-Parâmetro de Banco de Dados
O parâmetro -Database filtra caixas de correio com base no banco de dados em que estão armazenadas. É útil para operações que visam bancos de dados específicos, como durante migrações ou para relatórios específicos de banco de dados.
Get-Mailbox -Database " Mailbox Database 1767124038"
-OrganizationalUnit Parameter
O parâmetro -OrganizationalUnit restringe a busca às caixas de correio localizadas dentro de uma unidade organizacional específica Active Directory . Isso é particularmente útil em grandes organizações com uma hierarquia de OU estruturada.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
-Parâmetro de Arbitragem
O parâmetro -Arbitration switch recupera caixas de correio de arbitragem, que são caixas de correio do sistema usadas para armazenar dados organizacionais, como registros de auditoria de administrador, eDiscovery informações e outras tarefas relacionadas ao sistema.
Get-Mailbox -Arbitration
-AuditLog Parameter
O parâmetro de switch -AuditLog é usado para recuperar caixas de correio de registro de auditoria, que contêm registros de auditoria para ações realizadas por administradores e usuários. Isso é importante para fins de conformidade e monitoramento.
Get-Mailbox -AuditLog
-RecipientTypeDetails Parameter
Este parâmetro permite filtrar as caixas de correio com base no tipo delas, como UserMailbox, SharedMailbox, RoomMailbox ou EquipmentMailbox, entre outros. Facilita operações voltadas especificamente para o gerenciamento de tipos particulares de caixas de correio.
Get-Mailbox -RecipientTypeDetails SharedMailbox
-ResultSize Parameter
O parâmetro -ResultSize limita o número de resultados retornados pelo cmdlet. Por padrão, Get-Mailbox recupera até 1000 caixas de correio. Configurar este parâmetro para “Ilimitado” permite buscar detalhes para todas as caixas de correio sem truncamento ou configurá-lo para um número menor, por exemplo, 50, trará resultados de acordo com o valor fornecido.
Get-Mailbox -ResultSize 10
-SoftDeletedMailbox Parameter
Recupere caixas de correio que foram excluídas temporariamente, mas não removidas permanentemente, este parâmetro está disponível apenas para Exchange Online (Office365).
Get-Mailbox -SoftDeletedMailbox
-Anr
O parâmetro -Anr (Resolução de Nome Ambíguo) é usado em conjunto com o parâmetro -Identity para procurar uma caixa de correio onde a string especificada seja próxima ou semelhante à identidade real da caixa de correio. É útil quando o nome exato ou alias da caixa de correio não é conhecido.
Get-Mailbox -Anr "Adita"
-SortBy
Este parâmetro especifica a propriedade pela qual os resultados devem ser ordenados. Por exemplo, usando -SortBy DisplayName, organiza a lista de caixas de correio retornadas alfabeticamente pelo nome de exibição das caixas de correio.
Get-Mailbox -SortBy Name
Parâmetros Comuns
Como outros cmdlets no PowerShell, Get-Mailbox suporta parâmetros comuns como -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable e -OutVariable. Esses parâmetros podem ajudar a controlar as mensagens do cmdlet, lidar com erros e avisos, e gerenciar a saída em scripts e funções.
Outros parâmetros disponíveis para cmdlet
-Archive: Retorna caixas de correio com arquivos habilitados
-AuxAuditLog: Retorna caixas de correio de log de auditoria auxiliar
-Credential: Especifica o nome de usuário e senha
-DomainController: Especifica o controlador de domínio
-GroupMailbox: Retorna apenas os Grupos do Microsoft 365
-IgnoreDefaultScope: Ignora o escopo padrão do destinatário
-InactiveMailboxOnly: Retorna apenas caixas de correio inativas
-IncludeInactiveMailbox: Inclui caixas de correio inativas
-MailboxPlan: Filtra resultados pelo plano de caixa de correio
-Migração: Retorna caixas de correio de migração
-Monitoramento: Retorna caixas de correio de monitoramento
-PublicFolder: Retorna caixas de correio de pasta pública
-ReadFromDomainController: Lê informações do controlador de domínio
-RemoteArchive: Retorna caixas de correio de arquivo remoto
-Server: Filtra os resultados pelo servidor Exchange
Conteúdo relacionado selecionado:
Combinando Parâmetros
Você pode combinar múltiplos parâmetros para refinar sua consulta. A seguir, alguns exemplos.
- O cmdlet abaixo recupera todas as caixas de correio de usuário em um banco de dados específico com o tipo de destinatário como “usuário”.
Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
- O cmdlet abaixo obterá todas as caixas de correio com um atributo personalizado específico, com todos os resultados usando -ResultSize.
Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
Ao encaminhar a saída do cmdlet Get-Mailbox para o cmdlet Select-Object, o exemplo de cmdlets abaixo recupera uma lista personalizada mostrando o nome de exibição, endereço SMTP principal e cota de envio para cada caixa de correio de uma OU específica. Este formato é particularmente útil para gerar relatórios ou auditorias.
- Recupere caixas de correio em uma OU específica e mostre apenas seus nomes de exibição e endereços de email.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
- Listando todas as caixas de correio com propriedades detalhadas
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
- Exemplo mais complexo mostrado abaixo, combina vários cmdlets para identificar caixas de correio que não foram acessadas nos últimos 90 dias.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
Casos de uso e cenários
Get-Mailbox combinado com seus parâmetros, possibilita uma ampla gama de usos e cenários que podem facilitar a gestão eficaz do sistema de e-mails, conformidade, relatórios e solução de problemas. Abaixo estão alguns casos de uso e cenários.
Auditoria e Relatórios de Caixa de Correio
Gerando relatórios sobre tamanhos de caixa de correio, cotas e uso para garantir a conformidade com as políticas organizacionais. O cmdlet abaixo não produz resultados, você pode ir até o local fornecido no cmdlet Export-CSV e abrir o arquivo CSV, ele se parecerá com a captura de tela abaixo.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
Identificando caixas de correio inativas ou órfãs
Encontrar caixas de correio que não foram acessadas por um período específico, o que pode indicar caixas de correio inativas ou órfãs. Esse cenário ajuda na limpeza do sistema de correio, potencialmente liberando recursos e licenças ao identificar caixas de correio que não estão mais em uso.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
Gerenciamento de Configurações de Caixa de Correio
Listando caixas de correio com certas configurações, como encaminhamento ativado ou recursos específicos de caixa de correio.
Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
Gerenciamento em Massa
Realize operações em massa, como mover caixas de correio ou aplicar configurações de caixa de correio a várias caixas de correio de uma só vez. Mova todas as caixas de correio de um banco de dados para outro como parte de uma tarefa de manutenção.
Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
Operações em Massa e Delegações
Encontrar todas as caixas de correio compartilhadas ou delegadas e revisar seus usuários delegados para fins de auditoria.
Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
Definindo cotas para caixa de correio
Se você deseja definir a cota de envio e recebimento de acordo com sua necessidade, o cmdlet abaixo poderá definir a cota com o valor de 5GB, você pode usar seu próprio valor conforme necessário.
Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
O cmdlet acima não produzirá saída, mas definirá o valor; você pode usar o cmdlet abaixo para verificar a saída desejada que definiu usando o cmdlet acima.
Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
Solução de problemas
Diagnostique e solucione problemas relacionados a caixas de correio, como identificar caixas de correio com cotas excedidas. Identifique caixas de correio que excederam suas cotas de envio para tratar possíveis problemas de desempenho.
Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
Gestão de Unidade Organizacional
Gerencie caixas de correio dentro de uma unidade organizacional específica (OU), como aplicar configurações ou ajustes específicos. Recupere e aplique uma mudança de configuração em todas as caixas de correio na OU “HR”.
Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
O cmdlet acima não produzirá resultados, mas atribuirá o valor para o tamanho máximo de envio de mensagens, para todos os usuários dentro da OU especificada, use o cmdlet abaixo para confirmar.O que é um Cmdlet Get-Mailbox?
O cmdlet Get-Mailbox é um comando chave no Exchange Management Shell (para Exchange Server) e no módulo PowerShell do Exchange Online (para Office 365). É utilizado para recuperar informações sobre caixas de correio em um ambiente Exchange. Seja lidando com caixas de correio de usuários, caixas de correio vinculadas, caixas de correio compartilhadas ou caixas de correio de recursos, com o Get-Mailbox os administradores podem listar todas as caixas de correio dentro de um escopo especificado, como um banco de dados, servidor ou unidade organizacional, ou recuperar propriedades detalhadas para uma única caixa de correio. Você também pode filtrar os resultados para retornar apenas as caixas de correio que atendem a critérios específicos.
O cmdlet Get-Mailbox do PowerShell suporta muitos parâmetros que podem ser usados para personalizar as informações retornadas. Parâmetros como -Properties permitem obter um detalhamento abrangente dos atributos das caixas de correio. A saída do Get-Mailbox pode ser facilmente exportada para formatos CSV ou JSON, facilitando a integração com outras ferramentas e plataformas. O cmdlet Get-Mailbox também oferece a flexibilidade da programação em PowerShell em ambientes Exchange.
Disponibilidade tanto no Exchange local quanto no serviço baseado na nuvem
O cmdlet Get-Mailbox do PowerShell está disponível tanto em ambientes Exchange Server locais quanto no Exchange Online (Office 365), embora existam diferenças na implementação e nos recursos disponíveis. Foi introduzido como parte do Exchange Management Shell no Exchange Server 2007.
Conteúdo relacionado selecionado:
Servidor Exchange On-Premises
Get-Mailbox está disponível no Exchange Server 2010, 2013, 2016 e 2019. Get-Mailbox é utilizado através do Exchange Management Shell (EMS) no Exchange local ou via PowerShell carregando o módulo Exchange. Inclui parâmetros para filtragem por base de dados, unidade organizacional, tipo de destinatário e mais. Produz várias propriedades de caixas de correio como nome, endereço de email e base de dados da caixa de correio.
Exchange Online (Office 365)
O Get-Mailbox via PowerShell pode ser usado para o Exchange Online, que é acessado por meio de conexões remotas de PowerShell. Este módulo oferece capacidades de gerenciamento baseadas na nuvem e é acessado remotamente. Semelhante ao Exchange local, mas pode incluir parâmetros adicionais ou recursos otimizados para o ambiente na nuvem. A saída inclui propriedades relevantes para o gerenciamento na nuvem.
Recomendação para usar o cmdlet Get-EXOMailbox no Exchange Online
O cmdlet Get-EXOMailbox faz parte do módulo Exchange Online PowerShell e é utilizado para recuperar informações sobre caixas de correio no Exchange Online (parte do Office 365). Este cmdlet é uma alternativa ao Get-Mailbox com melhorias para o Exchange Online. O Get-EXOMailbox é otimizado para ambientes em nuvem e pode oferecer melhor desempenho e recursos adicionais projetados para o Office 365. Este cmdlet oferece opções de filtragem e consulta mais avançadas que são especialmente úteis em uma configuração baseada na nuvem e é melhor integrado com outros serviços e recursos do Office 365.
Recomendações para Usar Get-EXOMailbox
- Ao trabalhar no Exchange Online, use Get-EXOMailbox em vez de Get-Mailbox para obter desempenho otimizado e recursos específicos da nuvem.
- Utilize o parâmetro -Filter para recuperar de forma eficiente subconjuntos de caixas de correio com base em critérios específicos, reduzindo a carga e melhorando o desempenho da consulta.
- Para grandes organizações, use -ResultSize Unlimited para garantir que você capture todas as caixas de correio relevantes. Esteja ciente das implicações de desempenho com conjuntos de dados muito grandes.
- Utilize Get-EXOMailbox em scripts do PowerShell para tarefas automatizadas de relatórios, gerenciamento e manutenção no Exchange Online.
Função do Cmdlet Get-Mailbox
O cmdlet Get-Mailbox no Exchange Server e Exchange Online é utilizado para obter informações detalhadas sobre caixas de correio. O cmdlet não modifica nenhum dado, sua função principal é coletar e exibir propriedades e configurações das caixas de correio, isso inclui dados sobre tamanhos das caixas de correio, cotas, o número de itens, último acesso e muito mais. O cmdlet oferece flexibilidade para direcionar caixas de correio específicas, conjuntos de caixas de correio ou todas as caixas de correio, dependendo dos parâmetros utilizados.
Propósito
O cmdlet Get-Mailbox recupera informações sobre caixas de correio, incluindo caixas de correio de usuários, compartilhadas, de recursos (como caixas de correio de sala, compartilhadas e de equipamentos) e outras. Ele fornece detalhes como propriedades da caixa de correio, localização e configuração.
Principais Usos
Gere listas de caixas de correio para fins de relatórios, como auditoria de tipos de caixas de correio, localizações e atributos. Recupere detalhes necessários para tarefas de gestão de caixas de correio, como configurar definições de caixa de correio ou realizar operações em massa. Ajude a diagnosticar problemas fornecendo informações específicas da caixa de correio relacionadas a configurações, quotas e mais.
Operação
Quando você executa o cmdlet Get-Mailbox, ele consulta os serviços de diretório do Exchange, Active Directory em ambientes locais, ou diretório do Exchange Online no Office 365, para recuperar informações da caixa de correio. O cmdlet busca dados do banco de dados da caixa de correio ou diretórios e os apresenta com base nos parâmetros especificados. Isso inclui propriedades como endereços de e-mail, tamanhos das caixas de correio e mais.
Output
Por padrão, Get-Mailbox exibe um conjunto de propriedades comuns como DisplayName, PrimarySmtpAddress, Database e Recipient Type. A saída pode ser personalizada usando o Select-Object para exibir propriedades adicionais ou específicas.
Parâmetros
Parâmetros como -Identity, -Database, -OrganizationalUnit e -Filter permitem que você refine a busca para caixas de correio específicas ou conjuntos de caixas de correio com base em critérios como localização do banco de dados, unidade organizacional ou atributos personalizados. -ResultSize permite controlar o número de resultados retornados, o que é útil para gerenciar o desempenho e focar em subconjuntos relevantes de dados. Get-Mailbox suporta muitos outros parâmetros para mais tarefas.
Permissões necessárias para executar o Cmdlet Get-Mailbox
São necessárias permissões específicas para executar o cmdlet Get-Mailbox no Exchange Server e no Exchange Online. Essas permissões determinam quem pode executar o cmdlet para recuperar informações da caixa de correio. Geralmente, essas permissões são atribuídas por meio do controle de acesso baseado em funções (RBAC) no Exchange. Esses papéis geralmente incluem “Gerenciamento de Destinatários”, “Gerenciamento da Organização” ou “Gerenciamento da Organização Somente Visualização”. Abaixo está uma visão detalhada das permissões necessárias para executar o cmdlet Get-Mailbox.
Exchange Server (On-Premises)
Em um ambiente Exchange Server local, as permissões são normalmente concedidas por meio de role-based access control (RBAC). As funções RBAC podem ser atribuídas em vários escopos, desde toda a organização até bancos de dados de caixas de correio específicos.
Função de Gerenciamento de Destinatário
Para a gestão geral de caixas de correio, incluindo a execução de Get-Mailbox, os usuários são normalmente adicionados ao grupo de funções “Recipient Management”. Este grupo de funções inclui papéis que permitem criar, gerir e remover caixas de correio, entre outras tarefas relacionadas com destinatários.
Função de Gestão de Organização
Para privilégios administrativos de alto nível, incluindo a capacidade de executar todos os cmdlets relacionados a caixas de correio, o grupo de funções “Organization Management” pode ser utilizado, concedendo permissões em toda a organização Exchange.
Função de Gerenciamento da Organização Apenas Visualização
Este papel fornece acesso somente leitura às configurações organizacionais, incluindo a capacidade de executar Get-Mailbox, mas sem a habilidade de modificar as configurações.
Funções RBAC personalizadas
Você também pode criar funções personalizadas que incluam especificamente o cmdlet Get-Mailbox, personalizando as permissões para necessidades específicas sem conceder acesso mais amplo do que o necessário.
Exchange Online (Office 365)
No Exchange Online para Get-Mailbox, as permissões são gerenciadas de forma semelhante através do RBAC, parte da estrutura geral de permissões do Office 365, todos os papéis mencionados acima para o servidor Exchange local também estão disponíveis, mas existem alguns papéis de nível superior mencionados abaixo, que também têm permissões para executar o cmdlet Get-Mailbox.
Administrador Global
Os usuários com a função de Administrador Global têm permissões para executar Get-Mailbox juntamente com outros cmdlets administrativos em toda a organização do Exchange Online.
Função de Administrador do Exchange
Específico para o Exchange Online, a função de Exchange Administrator fornece as permissões necessárias para gerenciar as configurações do Exchange, gerenciamento de objetos, incluindo a execução de Get-Mailbox.
Funções de Administrador Personalizadas
O Office 365 permite a criação de funções de administrador personalizadas, como no Exchange local. Uma função personalizada pode incluir especificamente o cmdlet Get-Mailbox, juntamente com quaisquer outros cmdlets necessários, oferecendo controle preciso sobre as permissões.
Sintaxe para o Cmdlet Get-Mailbox
Sintaxe Básica
O uso mais direto do cmdlet Get-Mailbox é obter todas as caixas de correio usando o PowerShell. O cmdlet retorna uma lista resumida de todas as caixas de correio quando usado sem quaisquer parâmetros, incluindo atributos primários como DisplayName, Alias, ServerName, ProhibitSendQuota e outros, dependendo do ambiente.
Get-Mailbox
Sintaxe geral
A estrutura geral do Get-Mailbox com vários parâmetros é a seguinte.
Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
Abaixo está a sintaxe geral com um parâmetro
Get-Mailbox [-Parameter <value>]
Conteúdo relacionado selecionado:
Parâmetros comuns do Get-Mailbox
Os seguintes são parâmetros comumente usados do Get-Mailbox:
Get-Mialbox Parâmetros | Syntax |
|---|---|
|
-Parâmetro de Identity |
Get-Mailbox -Identity “BarbaraCole” |
|
-Parâmetro de Filtro |
Get-Mailbox -Filter {Name -like “Bar*”} |
|
-Parâmetro de Banco de Dados |
Get-Mailbox -Database “ Mailbox Database 1767124038″ |
|
-OrganizationalUnit Parameter |
Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL” |
|
-Parâmetro de Arbitragem |
Get-Mailbox -Arbitration |
|
-AuditLog Paramter |
Get-Mailbox -AuditLog |
|
-RecipientTypeDetails Parâmetro |
Get-Mailbox -RecipientTypeDetails SharedMailbox |
|
-ResultSize Parameter |
Get-Mailbox -ResultSize 10 |
|
-Parâmetro SoftDeletedMailbox |
Get-Mailbox -SoftDeletedMailbox |
|
-Anr |
Get-Mailbox -Anr “Adita” |
|
-SortBy |
Get-Mailbox -SortBy Name |
Vamos olhar para cada um deles
-Parâmetro de Identity
O parâmetro -Identity especifica a caixa de correio a ser recuperada. Ele pode aceitar várias formas de identificadores, como o GUID da caixa de correio, Nome Distinto (DN), Domínio\Nome de Usuário, Nome Principal do Usuário (UPN), Legacy Exchange DN, endereço SMTP ou Alias. Este parâmetro pode ser usado para acessar rapidamente informações sobre uma caixa de correio específica.
Get-Mailbox -Identity "BarbaraCole"
-Parâmetro de Filtro
O parâmetro -Filter permite consultas mais complexas. É utilizado para definir condições que identificam exatamente o conjunto de caixas de correio de interesse, com base em atributos como departamento, atributos personalizados ou tamanho da caixa de correio.
Get-Mailbox -Filter {Name -like "Bar*"}
Get-Mailbox -Filter {DisplayName -like "Bar*"}
Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
-Parâmetro de Banco de Dados
O parâmetro -Database filtra caixas de correio com base no banco de dados em que estão armazenadas. É útil para operações que visam bancos de dados específicos, como durante migrações ou para relatórios específicos de banco de dados.
Get-Mailbox -Database " Mailbox Database 1767124038"
-OrganizationalUnit Parameter
O parâmetro -OrganizationalUnit restringe a busca às caixas de correio localizadas dentro de uma unidade organizacional específica Active Directory . Isso é particularmente útil em grandes organizações com uma hierarquia de OU estruturada.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
-Parâmetro de Arbitragem
O parâmetro -Arbitration switch recupera caixas de correio de arbitragem, que são caixas de correio do sistema usadas para armazenar dados organizacionais, como registros de auditoria de administrador, eDiscovery informações e outras tarefas relacionadas ao sistema.
Get-Mailbox -Arbitration
-AuditLog Parameter
O parâmetro de switch -AuditLog é usado para recuperar caixas de correio de registro de auditoria, que contêm registros de auditoria para ações realizadas por administradores e usuários. Isso é importante para fins de conformidade e monitoramento.
Get-Mailbox -AuditLog
-RecipientTypeDetails Parameter
Este parâmetro permite filtrar as caixas de correio com base no tipo delas, como UserMailbox, SharedMailbox, RoomMailbox ou EquipmentMailbox, entre outros. Facilita operações voltadas especificamente para o gerenciamento de tipos particulares de caixas de correio.
Get-Mailbox -RecipientTypeDetails SharedMailbox
-ResultSize Parameter
O parâmetro -ResultSize limita o número de resultados retornados pelo cmdlet. Por padrão, Get-Mailbox recupera até 1000 caixas de correio. Configurar este parâmetro para “Ilimitado” permite buscar detalhes para todas as caixas de correio sem truncamento ou configurá-lo para um número menor, por exemplo, 50, trará resultados de acordo com o valor fornecido.
Get-Mailbox -ResultSize 10
-SoftDeletedMailbox Parameter
Recupere caixas de correio que foram excluídas temporariamente, mas não removidas permanentemente, este parâmetro está disponível apenas para Exchange Online (Office365).
Get-Mailbox -SoftDeletedMailbox
-Anr
O parâmetro -Anr (Resolução de Nome Ambíguo) é usado em conjunto com o parâmetro -Identity para procurar uma caixa de correio onde a string especificada seja próxima ou semelhante à identidade real da caixa de correio. É útil quando o nome exato ou alias da caixa de correio não é conhecido.
Get-Mailbox -Anr "Adita"
-SortBy
Este parâmetro especifica a propriedade pela qual os resultados devem ser ordenados. Por exemplo, usando -SortBy DisplayName, organiza a lista de caixas de correio retornadas alfabeticamente pelo nome de exibição das caixas de correio.
Get-Mailbox -SortBy Name
Parâmetros Comuns
Como outros cmdlets no PowerShell, Get-Mailbox suporta parâmetros comuns como -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable e -OutVariable. Esses parâmetros podem ajudar a controlar as mensagens do cmdlet, lidar com erros e avisos, e gerenciar a saída em scripts e funções.
Outros parâmetros disponíveis para cmdlet
-Archive: Retorna caixas de correio com arquivos habilitados
-AuxAuditLog: Retorna caixas de correio de log de auditoria auxiliar
-Credential: Especifica o nome de usuário e senha
-DomainController: Especifica o controlador de domínio
-GroupMailbox: Retorna apenas os Grupos do Microsoft 365
-IgnoreDefaultScope: Ignora o escopo padrão do destinatário
-InactiveMailboxOnly: Retorna apenas caixas de correio inativas
-IncludeInactiveMailbox: Inclui caixas de correio inativas
-MailboxPlan: Filtra resultados pelo plano de caixa de correio
-Migração: Retorna caixas de correio de migração
-Monitoramento: Retorna caixas de correio de monitoramento
-PublicFolder: Retorna caixas de correio de pasta pública
-ReadFromDomainController: Lê informações do controlador de domínio
-RemoteArchive: Retorna caixas de correio de arquivo remoto
-Server: Filtra os resultados pelo servidor Exchange
Conteúdo relacionado selecionado:
Combinando Parâmetros
Você pode combinar múltiplos parâmetros para refinar sua consulta. A seguir, alguns exemplos.
- O cmdlet abaixo recupera todas as caixas de correio de usuário em um banco de dados específico com o tipo de destinatário como “usuário”.
Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
- O cmdlet abaixo obterá todas as caixas de correio com um atributo personalizado específico, com todos os resultados usando -ResultSize.
Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
Ao encaminhar a saída do cmdlet Get-Mailbox para o cmdlet Select-Object, o exemplo de cmdlets abaixo recupera uma lista personalizada mostrando o nome de exibição, endereço SMTP principal e cota de envio para cada caixa de correio de uma OU específica. Este formato é particularmente útil para gerar relatórios ou auditorias.
- Recupere caixas de correio em uma OU específica e mostre apenas seus nomes de exibição e endereços de email.
Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
- Listando todas as caixas de correio com propriedades detalhadas
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
- Exemplo mais complexo mostrado abaixo, combina vários cmdlets para identificar caixas de correio que não foram acessadas nos últimos 90 dias.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
Casos de uso e cenários
Get-Mailbox combinado com seus parâmetros, possibilita uma ampla gama de usos e cenários que podem facilitar a gestão eficaz do sistema de e-mails, conformidade, relatórios e solução de problemas. Abaixo estão alguns casos de uso e cenários.
Auditoria e Relatórios de Caixa de Correio
Gerando relatórios sobre tamanhos de caixa de correio, cotas e uso para garantir a conformidade com as políticas organizacionais. O cmdlet abaixo não produz resultados, você pode ir até o local fornecido no cmdlet Export-CSV e abrir o arquivo CSV, ele se parecerá com a captura de tela abaixo.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
Identificando caixas de correio inativas ou órfãs
Encontrar caixas de correio que não foram acessadas por um período específico, o que pode indicar caixas de correio inativas ou órfãs. Esse cenário ajuda na limpeza do sistema de correio, potencialmente liberando recursos e licenças ao identificar caixas de correio que não estão mais em uso.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
Gerenciamento de Configurações de Caixa de Correio
Listando caixas de correio com certas configurações, como encaminhamento ativado ou recursos específicos de caixa de correio.
Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
Gerenciamento em Massa
Realize operações em massa, como mover caixas de correio ou aplicar configurações de caixa de correio a várias caixas de correio de uma só vez. Mova todas as caixas de correio de um banco de dados para outro como parte de uma tarefa de manutenção.
Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
Operações em Massa e Delegações
Encontrar todas as caixas de correio compartilhadas ou delegadas e revisar seus usuários delegados para fins de auditoria.
Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
Definindo cotas para caixa de correio
Se você deseja definir a cota de envio e recebimento de acordo com sua necessidade, o cmdlet abaixo poderá definir a cota com o valor de 5GB, você pode usar seu próprio valor conforme necessário.
Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
O cmdlet acima não produzirá saída, mas definirá o valor; você pode usar o cmdlet abaixo para verificar a saída desejada que definiu usando o cmdlet acima.
Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
Solução de problemas
Diagnostique e solucione problemas relacionados a caixas de correio, como identificar caixas de correio com cotas excedidas. Identifique caixas de correio que excederam suas cotas de envio para tratar possíveis problemas de desempenho.
Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
Gestão de Unidade Organizacional
Gerencie caixas de correio dentro de uma unidade organizacional específica (OU), como aplicar configurações ou ajustes específicos. Recupere e aplique uma mudança de configuração em todas as caixas de correio na OU “HR”.
Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
O cmdlet acima não produzirá resultados, mas atribuirá o valor para o tamanho máximo de envio de mensagens, para todos os usuários dentro da OU especificada, use o cmdlet abaixo para confirmar.
Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Select MaxSendSize
Delegar Acesso
Delegue acesso a caixas de correio para fins administrativos ou de suporte. Conceda permissões de acesso total a uma caixa de correio de suporte para todas as caixas de correio em um banco de dados de caixas de correio específico.
Get-Mailbox -Database “Test3” | Add-MailboxPermission -User "administrator@milkyway.local" -AccessRights FullAccess
Verificando as configurações de cota de caixa postal
Verificar as configurações de cota de caixa de correio é importante, pois ajuda a garantir que os usuários não excedam os limites de armazenamento estabelecidos pela organização, o que pode afetar a funcionalidade do e-mail.
Visão Geral da Cota de Caixa Postal
As cotas de caixa de correio são usadas para limitar a quantidade de espaço de armazenamento que uma caixa de correio pode utilizar. Essas cotas incluem o seguinte.
- Cota de Aviso de Emissão: O limite no qual os usuários são avisados de que sua caixa de correio está se aproximando do limite de armazenamento.
- Prohibit Send Quota: O limite no qual os usuários são impedidos de enviar novas mensagens.
- Proibir cota de envio e recebimento: O limite no qual os usuários são impedidos de enviar ou receber novas mensagens.
Para verificar as configurações de cota para uma caixa de correio específica, você pode usar o cmdlet Get-Mailbox seguido pela identidade da caixa de correio. Isso retornará várias propriedades da caixa de correio, incluindo as configurações de cota.
Get-Mailbox -Identity "BarbaraCole" | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UsedDatabaseQuotaDefaults
Se você precisa revisar as configurações de cota em várias ou todas as caixas de correio dentro do seu ambiente, pode usar o cmdlet Get-Mailbox sem especificar uma identidade e saída das propriedades de cota relevantes, e exportar os dados para um arquivo CSV, facilitando a análise e o relatório sobre as configurações de cota.
Get-Mailbox -ResultSize Unlimited -Database “Test3” | Select-Object DisplayName,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota
Exemplo1: Retornando uma lista resumida de todas as caixas de correio
Para retornar uma lista resumida de todas as caixas de correio no Exchange Online ou Exchange Server usando o PowerShell, utilize o cmdlet abaixo.
O comando abaixo exibirá uma tabela no seu console do PowerShell contendo um resumo de todas as caixas de correio com seus nomes de exibição, aliases, UPNs, datas de criação e endereços de email principais. Este resumo fornece uma visão geral rápida, útil para relatórios, auditorias ou simplesmente para obter um entendimento sobre as caixas de correio atualmente estabelecidas no seu ambiente Exchange.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, Alias, UserPrincipalName, WhenCreated, PrimarySmtpAddress | Format-Table -AutoSize
O cmdlet abaixo usará algumas propriedades adicionais, por exemplo, Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota, juntamente com o nome de exibição e o endereço SMTP primário.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,Database,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota | Format-Table -Autosize
Exemplo2: Retornando uma lista resumida de caixas de correio de arquivo em um banco de dados específico
Para retornar uma lista resumida de caixas de correio de arquivo localizadas em um banco de dados específico usando o PowerShell no Exchange Online ou Exchange Server, você pode usar uma combinação dos cmdlets “Get-Mailbox and” e “Get-MailboxStatistics”. Essa combinação permite filtrar as caixas de correio pelo banco de dados hospedeiro e depois verificar cada uma para um arquivo. Abaixo está como você pode realizar isso.
Get-Mailbox -Database "Test3" -Archive | Get-MailboxStatistics -Archive | Select-Object DisplayName, TotalItemSize, ItemCount | Format-Table -AutoSize
Conteúdo relacionado selecionado:
Combinando Get-Mailbox com outros cmdlets (Get-Member, Select-Object, Format-List)
Combinando o cmdlet Get-Mailbox com outros cmdlets do PowerShell como Get-Member, Select-Object e Format-List, você pode recuperar, visualizar e formatar informações da caixa de correio de maneira mais eficaz.
Get-Member
O cmdlet Get-Member é usado para inspecionar as propriedades e métodos dos objetos retornados por Get-Mailbox. Isso é particularmente útil para descobrir quais propriedades estão disponíveis para seleção ou formatação.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Get-Member
Select-Object
O cmdlet Select-Object permite especificar quais propriedades você deseja incluir na saída. Isso é útil para criar uma visualização personalizada das informações do mailbox.
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress,Database
Format-List
O cmdlet Format-List formata a saída como uma lista, exibindo todas as propriedades e seus valores. Isso é útil para uma visualização detalhada das propriedades de um objeto de mailbox.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-List DisplayName, PrimarySmtpAddress, ProhibitSendQuota
Operações em massa com Get-Mailbox e Set-Mailbox
Você deseja atualizar configurações de mailbox para vários mailboxes, como definir uma cota específica ou ativar/desativar a arquivação.
O comando abaixo encontra todos os mailboxes em “Test3” e define suas configurações de cota. Ele atualiza ProhibitSendQuota, ProhibitSendReceiveQuota e IssueWarningQuota para cada mailbox.
Get-Mailbox -ResultSize Unlimited | Where-Object { $_.Database -eq "Test3" } | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 6GB -IssueWarningQuota 4GB
Usando filtros e ordenando resultados
Ao trabalhar com grandes conjuntos de informações, você pode restringir o conjunto de dados exatamente ao que precisa, e a ordenação ajuda a organizar a saída para melhor análise ou geração de relatórios. Os cmdlets abaixo mostram como usar mecanismos de filtragem e ordenação com Get-Mailbox.
Usando filtros no Get-Mailbox
Os cmdlets de filtragem permitem especificar critérios para incluir apenas os objetos que correspondem a esses critérios na saída do comando; você pode aplicar filtros diretamente em cmdlets que suportam o parâmetro -Filter ou usar o cmdlet Where-Object para cenários de filtragem mais complexos ou não suportados.
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.CustomAttribute1 -eq "TeamA" -and $_.DisplayName -like "Barb*"}
Ordenando resultados com Get-Mailbox
A ordenação ajuda a organizar seus dados em uma sequência significativa, facilitando a leitura e a análise. Você pode usar o cmdlet Sort-Object para fins de ordenação. Este comando recupera todos os mailboxes e os ordena alfabeticamente pelo DisplayName.
Get-Mailbox -ResultSize 10 | Sort-Object DisplayName
Exportando resultados para CSV
Para exportar resultados para um arquivo CSV, o PowerShell oferece o cmdlet Export-Csv, que recebe a entrada do pipeline e grava em um arquivo CSV especificado. Por exemplo, se você quiser exportar uma lista de mailboxes do Exchange junto com seus tamanhos e detalhes de uso, pode usar o cmdlet abaixo. Você precisa especificar o caminho e o nome do arquivo do CSV no parâmetro -Path.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Exports\MailboxDetails.csv" -NoTypeInformation
Agrupando e formatando resultados
Agrupar e formatar resultados melhora significativamente a legibilidade da saída de dados. O PowerShell fornece cmdlets como Group-Object, Format-Table, Format-List, etc., que podem ser usados para esses propósitos.
Agrupando resultados
O cmdlet Group-Object serve para categorizar objetos com base nos valores das propriedades. Isso pode ser particularmente útil para classificar mailboxes por atributos, como departamento ou atributos personalizados.
Get-Mailbox -ResultSize Unlimited | Group-Object -Property CustomAttribute1
Formatando resultados
Depois que os dados são agrupados ou ao apresentar qualquer tipo de dado, a formatação adequada pode tornar a saída mais acessível. Format-Table, frequentemente abreviado como “ft”, exibe os dados em formato de tabela. É ideal quando você deseja ver os resultados em colunas. Você pode especificar as propriedades a serem exibidas e até mesmo controlar a largura das colunas.
Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-Table DisplayName,UserPrincipalName,WhenCreated,PrimarySmtpAddress,database -AutoSize
Usando “Format-List”
Format-List, abreviado como “fl”, exibe cada propriedade de um objeto em uma nova linha, tornando-o adequado para visualização detalhada de poucos objetos ou quando o objeto possui muitas propriedades que não se ajustariam bem em uma tabela.
Get-Mailbox -Identity "BarbaraCole" | Format-List DisplayName, PrimarySmtpAddress, EmailAddresses
Diferenças no comportamento dos cmdlets no Exchange Online
O cmdlet Get-Mailbox se comporta de forma ligeiramente diferente no Exchange Online em comparação ao seu uso no Exchange local (on-premises). Essas diferenças decorrem principalmente da arquitetura baseada em nuvem do Exchange Online e da configuração multi-inquilino (multi-tenant), o que impacta como os administradores interagem com os mailboxes e o escopo dos cmdlets. Abaixo estão algumas diferenças-chave.
- No Exchange Online, as operações de cmdlets podem estar sujeitas a throttling para manter o desempenho geral do serviço; isso pode levar mais tempo ou exigir processamento em lotes em ambientes maiores para evitar os limites de throttling.
- O Exchange Online inclui mais tipos de destinatários e detalhes para acomodar a variedade de serviços do Office 365; você pode encontrar tipos de destinatários específicos do ambiente de nuvem que não existem no Exchange local.
- Algumas propriedades e atributos disponíveis no Exchange local podem não estar presentes ou acessíveis no Exchange Online devido à natureza do ambiente hospedado. Mailboxes no Exchange Online podem ter propriedades adicionais relacionadas ao ambiente de nuvem, como informações de licenciamento e planos de mailbox.
- A saída padrão no Exchange Online é diferente para administração em nuvem, fornecendo informações mais relevantes para administradores de cloud. O conjunto de propriedades exibidas por padrão e os filtros integrados podem diferir dos de um Exchange local.
- Devido à arquitetura multi-inquilino do Exchange Online, o escopo do Get-Mailbox é limitado aos mailboxes da organização. Em um ambiente híbrido, para gerenciar mailboxes locais, os administradores precisam usar a Exchange Management Shell on-premises.
- O Exchange Online se integra de perto com outros serviços do Office 365, oferecendo recursos avançados de segurança e conformidade. O comportamento do Get-Mailbox pode refletir essas integrações, como sinalizadores ou propriedades relacionadas a litigation hold, eDiscovery ou Advanced Threat Protection.
Handpicked related content:
Usando Get-EXOMailbox para melhor desempenho
Get-EXOMailbox é um cmdlet projetado para uso em ambientes Exchange Online. Ele oferece desempenho aprimorado e funcionalidades específicas para a natureza baseada em nuvem do Exchange Online, em comparação ao cmdlet tradicional Get-Mailbox. O Get-EXOMailbox é otimizado para execução mais rápida em conexões remotas, tornando-o mais eficiente para recuperar informações de mailboxes no Exchange Online. A conexão requer autenticação moderna, potencialmente incluindo autenticação multifator (MFA), dependendo da configuração do seu ambiente.
Connect-ExchangeOnline -UserPrincipalName administrator@milkyway.com
A seguir, alguns exemplos mostrando como o Get-EXOMailbox pode ser usado em tarefas administrativas comuns.
Get-EXOMailbox -ResultSize Unlimited
Filtrar por tipo de destinatário (Recipient Type)
Get-EXOMailbox -RecipientTypeDetails SharedMailbox | Format-Table -Autosize
Filtrar por status de arquivamento (Archive Status)
Get-EXOMailbox -Filter { ArchiveStatus -eq "Active" } Format-Table -Autosize
A arquivação no Office 365 é um recurso premium; usei ArchiveStatus como None para mostrar a saída abaixo. O cmdlet acima funcionará se houver mailboxes com a arquivação habilitada.
Selecionar propriedades específicas (Select Specific Properties)
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,UserPrincipalName
Ordenar por nome de exibição (Sort by Display Name)
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,UserPrincipalName | Sort-Object DisplayName
Parâmetros exclusivos do Get-Mailbox para Exchange Online
O cmdlet Get-Mailbox inclui parâmetros que são exclusivos do Exchange Online ou têm relevância em um ambiente hospedado em nuvem quando comparado a uma configuração de Exchange Server on-premises. Esses parâmetros exclusivos fornecem características específicas da administração em nuvem, como lidar com licenciamento, listar mailboxes inativos ou recuperar mailboxes soft deleted (apagados de forma reversível).
-InactiveMailboxOnly
Você pode escolher limitar os resultados apenas a mailboxes inativos usando o parâmetro -InactiveMailboxOnly. Este switch não requer valor.
Um mailbox colocado em litigation hold ou in-place hold antes de ser soft-deleted é considerado inativo.
-MailboxPlan
Esse parâmetro filtra os mailboxes retornados pelo comando para incluir somente aqueles associados a um plano de mailbox específico. Esse recurso é especialmente útil em ambientes com vários planos, como planos diferentes para departamentos ou funções distintas na organização.
-IncludeInactiveMailbox
Esse parâmetro inclui mailboxes inativos nos resultados. Mailboxes inativos geralmente estão relacionados a usuários excluídos ou desprovisionados, mas são retidos para fins de retenção de dados, especialmente importantes para conformidade e eDiscovery.
-SoftDeletedMailbox
Esse parâmetro inclui nos resultados mailboxes que foram soft deleted. Mailboxes soft-deleted ocorrem quando um mailbox é excluído pelo centro de administração do Office 365 ou via PowerShell, mas é retido por um período para permitir a recuperação.
Boas práticas para Get-Mailbox
Ao gerenciar mailboxes em um ambiente Microsoft Exchange usando o cmdlet Get-Mailbox, seguir boas práticas garante desempenho ideal, segurança e capacidade de gerenciamento. Abaixo estão algumas recomendações importantes.
Limite o escopo das suas consultas
Use filtros para reduzir os resultados apenas aos mailboxes de interesse. Isso reduz a carga do sistema e obtém as informações mais rapidamente. Ao executar Get-Mailbox, especialmente em ambientes grandes, tente limitar o escopo do comando aos mailboxes necessários. Use parâmetros como -RecipientTypeDetails ou -OrganizationalUnit para restringir os resultados e reduzir a carga no seu servidor Exchange.
Use filtragem no lado do servidor
Sempre que possível, use parâmetros que realizem o filtragem no servidor em vez de trazer todos os objetos para a memória e filtrar no cliente com Where-Object. Isso melhora o desempenho e a eficiência. Aproveite o parâmetro -Filter para realizar a filtragem do lado do servidor. Essa abordagem é mais eficiente e reduz a quantidade de dados transmitidos pela rede.
Use limites de tamanho de resultado com cuidado
Tenha cautela com o parâmetro -ResultSize Unlimited, especialmente em ambientes grandes. Embora seja necessário para operações abrangentes, pode causar problemas de desempenho. Considere dividir operações grandes em lotes menores.
Recuperação seletiva de propriedades
Por padrão, Get-Mailbox recupera muitas propriedades para cada mailbox, o que nem sempre é necessário. Use o parâmetro -Properties para especificar apenas as propriedades de que você precisa, ou use Select-Object para reduzir os resultados. Isso pode melhorar significativamente o desempenho.
Uso eficiente de curingas (wildcards)
Ao usar wildcards (*) em filtros, esteja ciente de que eles podem causar problemas de desempenho se usados de forma excessiva ou ineficiente. Posicione os curingas com cuidado nas suas consultas para garantir que sejam o mais eficientes possível.
Combine com outros cmdlets de forma criteriosa
Com frequência, Get-Mailbox é usado em conjunto com outros cmdlets para tarefas como modificações em mailboxes ou relatórios. Ao enviar (pipe) a saída de Get-Mailbox para outros cmdlets, garanta que o comando inicial Get-Mailbox seja o mais direcionado possível para evitar processamento desnecessário.
Entenda o impacto de RecipientTypeDetails
Esse parâmetro é extremamente útil para direcionar tipos específicos de mailboxes (por exemplo, UserMailbox, SharedMailbox, etc.). Compreendê-lo e usá-lo efetivamente ajuda a executar operações mais precisas.
Segurança e conformidade
Ao executar scripts ou comandos de Get-Mailbox que possam expor informações sensíveis, garanta a conformidade com as políticas de segurança da sua organização. Restrinja o acesso a esses scripts e à sua saída apenas ao pessoal autorizado.
Teste e valide scripts
Antes de executar em produção um script que faça alterações com base na saída de Get-Mailbox, teste-o completamente em um ambiente não-produtivo. Valide a seleção de mailboxes e as alterações pretendidas para evitar impactos indesejados.
Revise e atualize scripts regularmente
Conforme o seu ambiente Exchange evolui, seus scripts e comandos também devem evoluir. Revise e atualize regularmente para garantir que estejam usando os métodos mais eficientes e alinhados às melhores práticas atuais.
Mantenha-se atualizado
Garanta que sua sessão do PowerShell ou módulo para Exchange esteja atualizado. A Microsoft atualiza regularmente os cmdlets do PowerShell para o Exchange Online, introduzindo novos recursos e melhorias que podem aprimorar suas capacidades de scripting.
Handpicked related content:
Get-Mailbox — Solução de problemas comuns
Você pode encontrar vários problemas ou comportamentos inesperados ao trabalhar com o cmdlet Get-Mailbox. A seguir estão alguns problemas comuns com etapas de troubleshooting e soluções para resolvê-los de forma eficaz.
Cmdlet não reconhecido
Você pode receber uma mensagem de erro indicando que “Get-Mailbox” não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa executável.
Etapas de troubleshooting
- Certifique-se de estar executando o cmdlet na Exchange Management Shell (para Exchange Server) ou conectado ao Exchange Online PowerShell usando Connect-ExchangeOnline (para Exchange Online).
- Para Exchange Online, garanta que o módulo Exchange Online PowerShell esteja instalado e atualizado.
- Verifique sua sessão do PowerShell; você pode estar em uma sessão que não carrega os cmdlets do Exchange por padrão.
Permissões insuficientes
Você está conectado ao Exchange Online ou Exchange Server, mas recebe erros relacionados a permissões ao tentar executar Get-Mailbox.
Etapas de troubleshooting
- Verifique se a conta usada possui as permissões necessárias (por exemplo, Exchange Admin no Exchange Online ou as funções RBAC apropriadas no Exchange Server).
- Para Exchange Online, certifique-se de que a MFA esteja configurada corretamente se exigida pela sua conta.
- No Exchange Server, verifique se o acesso ao Get-Mailbox foi concedido explicitamente à conta ou se ela foi adicionada a uma função que permite a operação, por exemplo, Recipient Management.
Resultados incompletos ou inesperados
O cmdlet Get-Mailbox é executado sem erros, mas retorna resultados incompletos ou inesperados.
Etapas de troubleshooting
- Use o parâmetro -ResultSize para garantir que todos os mailboxes esperados estejam sendo consultados. O padrão pode não retornar todos.
- Refine sua consulta usando o parâmetro -Filter para garantir que reflita com precisão os critérios que você deseja aplicar.
- Verifique se existem opções de filtragem no lado do servidor ou do cliente que possam estar limitando os resultados.
- No Exchange Online, políticas de throttling às vezes podem atrasar a execução de comandos; considere tentar novamente após um breve intervalo.
Problemas de desempenho
O cmdlet leva muito tempo para executar, especialmente em ambientes com um grande número de mailboxes.
Etapas de troubleshooting
- Limite o escopo da sua consulta usando -ResultSize, -Filter ou parâmetros específicos como -OrganizationalUnit para restringir os resultados e melhorar o desempenho.
- Considere dividir sua tarefa em lotes menores se estiver processando muitos mailboxes.
- Para Exchange Online, garanta que você esteja usando a versão mais recente do Exchange Online Management Module, otimizada para grandes volumes de dados.
Problemas de conectividade
Você enfrenta problemas de conectividade ao tentar usar Get-Mailbox no Exchange Online.
Etapas de troubleshooting
- Verifique se sua conexão com a Internet é estável.
- Confirme se não há incidentes de serviço em andamento que afetem o Exchange Online consultando o Service Health Dashboard do Office 365.
- Restabeleça sua sessão do PowerShell com o Exchange Online usando Connect-ExchangeOnline, pois timeouts de sessão ou mudanças de rede podem interromper a conectividade.
Restrições da política de execução de scripts
Você encontra restrições relacionadas à política de execução (Execution Policy) do PowerShell ao executar scripts que incluem o cmdlet Get-Mailbox.
Etapas de troubleshooting
- Use Get-ExecutionPolicy para verificar sua política atual.
- Se necessário, ajuste a política usando Set-ExecutionPolicy com um nível apropriado (por exemplo, RemoteSigned) que permita a execução do script, considerando as implicações de segurança.
Troubleshooting Steps
- Limit your query scope using “-ResultSize”, “-Filter”, or other specific parameters like “-OrganizationalUnit” to narrow down the results and improve performance.
- Consider breaking down your task into smaller batches if you are processing a large number of mailboxes.
- For Exchange Online, ensure you are using the latest version of the Exchange Online Management Module which is optimized for large datasets.
Connectivity Issues
You experience connectivity issues when trying to use “Get-Mailbox” in Exchange Online.
Troubleshooting Steps
- Ensure your internet connection is stable.
- Confirm that there are no ongoing service incidents affecting Exchange Online by checking the Office 365 Service Health dashboard.
- Re-establish your PowerShell session to Exchange Online using “Connect-ExchangeOnline”, as session timeouts or network changes can disrupt connectivity.
Script Execution Policy Restrictions
You encounter restrictions related to PowerShell script execution policy when running scripts that include the “Get-Mailbox” cmdlet.
Troubleshooting Steps
- Use “Get-ExecutionPolicy” to check your current PowerShell execution policy.
- If necessary, adjust the policy using “Set-ExecutionPolicy” with an appropriate level (e.g., RemoteSigned) that allows your script to run, considering the security implications.
Windows PowerShell Scripting Tutorial (PDF) for Beginners
Learn MoreFAQs
Por que o Get-Mailbox não é reconhecido no PowerShell?
O erro “Get-Mailbox not recognized” ocorre porque o módulo Exchange Management Shell não está carregado na sua sessão do PowerShell. Esse cmdlet é específico do Exchange Server e requer o módulo apropriado para funcionar. Para Exchange Online, você precisa instalar e se conectar com o módulo Exchange Online PowerShell V2:
Install-Module ExchangeOnlineManagement
Para Exchange on-premises, certifique-se de executar o PowerShell pela Exchange Management Shell ou de ter importado o módulo do Exchange. Após a instalação, conecte-se usando:
# For cloud environments
Connect-ExchangeOnline
# For on-premises
Import-Module Exchange
O nome do cmdlet também difere entre as versões — o Exchange Online usa Get-EXOMailbox para melhor desempenho em ambientes grandes, enquanto o Exchange tradicional usa Get-Mailbox.
Como se conectar ao Exchange Online PowerShell?
Conectar-se ao Exchange Online PowerShell requer o módulo Exchange Online Management e a autenticação adequada. Primeiro, instale o módulo em uma sessão do PowerShell elevada:
Connect-ExchangeOnline
Depois conecte:
Connect-ExchangeOnline -UserPrincipalName youradmin@domain.com -ShowProgress
Você será solicitado a informar suas credenciais do Office 365. Para maior segurança, use a autenticação moderna; a MFA é tratada automaticamente no processo de conexão. Uma vez conectado, você pode usar Get-EXOMailbox em vez de Get-Mailbox para melhor desempenho em ambientes grandes. Sempre desconecte ao finalizar:
Disconnect-ExchangeOnline
Esse método de conexão fornece acesso administrativo completo às funções de gerenciamento do Exchange Online.
Como verificar permissões de mailbox com PowerShell?
Verificar permissões de mailbox requer combinar Get-Mailbox com Get-MailboxPermission para obter informações de acesso abrangentes. Use este comando para ver quem tem acesso a um mailbox específico:
Get-MailboxPermission -Identity username@domain.com
Isso mostra permissões Full Access, Send As e Send on Behalf. Para análises em massa, direcione a saída de Get-Mailbox para Get-MailboxPermission:
Get-Mailbox | Get-MailboxPermission
A saída mostra AccessRights, User e Deny para cada entrada de permissão. Para identificar privilégios excessivos, filtre os resultados usando Where-Object:
Get-MailboxPermission -Identity username@domain.com | Where-Object {$_.User -notlike "NT AUTHORITY*"}
Essa abordagem fornece visibilidade sobre quem pode acessar quais dados de mailbox, o que é crucial para manter o princípio do menor privilégio e a conformidade.
Como exportar a lista de mailboxes para CSV?
Exportação básica:
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, RecipientTypeDetails | Export-CSV -Path "C:\MailboxList.csv" -NoTypeInformation
Relatório detalhado:
Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, TotalItemSize, ProhibitSendQuota, LastLogonTime | Export-CSV -Path "C:\DetailedMailboxList.csv" -NoTypeInformation
O cmdlet Select-Object controla quais atributos de mailbox aparecem na exportação, enquanto Export-Csv cuida da formatação do arquivo. Para ambientes grandes, considere usar Get-EXOMailbox no Exchange Online para melhor desempenho. Adicione filtros para exportar tipos específicos de mailboxes:
Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} | Export-CSV -Path "C:\UserMailboxes.csv" -NoTypeInformation
Esse método cria arquivos de dados estruturados, perfeitos para relatórios de conformidade, planejamento de capacidade e auditorias de segurança.
Get-Mailbox vs Get-EXOMailbox: qual usar?
Get-EXOMailbox é o substituto moderno de Get-Mailbox em ambientes Exchange Online, oferecendo desempenho significativamente melhor para organizações de grande porte. Use Get-EXOMailbox ao trabalhar com Exchange Online, pois ele é otimizado para operações em escala de nuvem e lida automaticamente com a paginação. A sintaxe permanece quase idêntica, mas o Get-EXOMailbox processa resultados mais rapidamente e usa menos memória. Para Exchange Server on-premises, você deve usar Get-Mailbox, já que Get-EXOMailbox não existe na Exchange Management Shell tradicional. Em ambientes híbridos, use o cmdlet apropriado para cada ambiente — Get-EXOMailbox para mailboxes na nuvem e Get-Mailbox para mailboxes locais. A Microsoft recomenda Get-EXOMailbox para todos os novos scripts do Exchange Online e a migração gradual dos scripts existentes para obter melhor desempenho e compatibilidade futura.
Compartilhar em
Saiba Mais
Sobre o autor
Kevin Horvatin
Arquiteto Chefe de Software
Kevin Horvatin é um Arquiteto de Software Líder na Netwrix e responsável pelo Netwrix Privilege Secure. Desenvolvedor de software há mais de 20 anos, ele trabalha com PowerShell e C# desde que foram lançados.