4.3K
Uno de los comandos de PowerShell más utilizados por los administradores de Exchange es el Obtener buzón cmdlet. Este cmdlet ha estado disponible desde Exchange Server 2007 y hasta la última versión (2019 al momento de escribir este artículo) y Exchange Online.
El Obtener buzón El propósito del cmdlet es simple: recuperar información sobre los buzones de correo de su organización Exchange. En este artículo, mostraremos varios ejemplos prácticos del uso Obtener buzón para obtener información sobre los buzones de Exchange.
Obtener información sobre un buzón específico
Los administradores de Exchange suelen ver la información de un buzón a la vez mediante el Centro de administración de Exchange.
Puede obtener la información utilizando el Obtener buzón cmdlet especificando la identidad del buzón.
Get-Mailbox -Identity <mailbox identity>
El -Identidad El parámetro acepta los siguientes identificadores de buzón.
- Nombre
- Alias
- Nombre distinguido (DN)
- DN canónico
- Dominio
- Dirección de correo electrónico
- GUID
- LegacyExchangeDN
- SamNombreDeCuenta
- ID de usuario o nombre principal de usuario (UPN)
Conjunto de propiedades predeterminado
Como puede ver a continuación, la propiedad predeterminada establece el Obtener buzón Los retornos de cmdlet incluyen el Nombre, Alias, Nombre del servidory ProhibirEnviarCuota.
La ejecución del mismo comando en Exchange Online PowerShell devuelve un conjunto de propiedades diferente que incluye el Nombre, Alias, Base de datos, ProhibirEnviarCuotay ID de objeto de directorio externo.
Pero puede encontrar todas las propiedades de Get-Mailbox canalizando el objeto de buzón resultante al Obtener miembro cmdlet.
Get-Mailbox -Identity <mailbox identity> | Get-Member -MemberType Properties
Obtener todos los buzones
ejecutando el Obtener buzón El cmdlet sin parámetros devuelve hasta 1000 buzones de correo.
$mailboxCollection = Get-Mailbox $mailboxCollection.Count
Pero este límite se puede ajustar añadiendo el -Tamaño del resultado parámetro. Este parámetro acepta un número para indicar cuántos buzones devolver. Por ejemplo, el siguiente comando devuelve un máximo de 5000 buzones.
$mailboxCollection = Get-Mailbox -ResultSize 5000 $mailboxCollection.Count
El -Tamaño del resultado El parámetro también acepta la palabra. Ilimitadoque indica devolver todos los buzones.
$mailboxCollection = Get-Mailbox -ResultSize Unlimited $mailboxCollection.Count
Obtener buzón en una base de datos específica
Otro uso típico de Get-Mailbox es encontrar qué buzones están en una base de datos específica. Tenga en cuenta que este uso se aplica sólo a los servidores Exchange y no a Exchange Online.
Por ejemplo, el siguiente comando obtiene los buzones de la base de datos de buzones DB02.
Get-Mailbox -Database DB02 | Format-Table DisplayName,ServerName,Database
Obtener buzón de un tipo específico
Al ejecutar el cmdlet Get-Mailbox, también puede obtener tipos de buzones específicos utilizando el Detalles del tipo de destinatario parámetro. Este parámetro acepta uno o más tipos de buzones de esta lista:
- DescubrimientoBuzón
- EquipoBuzón
- GroupMailbox (Exchange 2013 o posterior y Exchange Online)
- Buzón heredado
- Buzón vinculado
- LinkedRoomMailbox (Exchange 2013 o posterior y Exchange Online)
- HabitaciónBuzón
- SchedulingMailbox (Exchange 2016 o posterior y Exchange Online)
- Buzón compartido
- TeamMailbox (Exchange 2013 o posterior y Exchange Online)
- Buzón de usuario
El siguiente comando de ejemplo enumera los Buzón compartido y HabitaciónBuzón tipos de buzones.
Get-Mailbox -RecipientTypeDetails SharedMailbox,RoomMailbox | Format-Table DisplayName,RecipientTypeDetails
Obtener buzón filtrado por atributos
El cmdlet Get-Mailbox tiene un parámetro -Filter que le permite filtrar los objetos del buzón que se devolverán según sus atributos. Puede filtrar buzones de correo según propiedades como Alias, Dirección SMTP principal, Ciudad, Compañíaetc.
Por ejemplo, el siguiente comando filtra los buzones cuyo valor de propiedad Alias comienza con Jo.
Get-Mailbox -Filter "Alias -like 'Jo*'"
Tenga en cuenta que no todas las propiedades admiten comodines (*) comparación de personajes. Pero si lo hacen, la comparación de caracteres comodín se admite como sufijo (palabra*) y no un prefijo (*palabra). Incluso si un comodín de prefijo funcionó en algunos casos, Microsoft no lo recomienda debido a problemas de bajo rendimiento.
Otro ejemplo es incluir buzones de correo en retención por litigio. Este ejemplo filtra los buzones de correo cuyos LitigioHoldEnabled la propiedad está establecida en Verdadero. A continuación se muestran cuatro variaciones de este ejemplo de filtrado que realizan la misma operación de comparación.
Get-Mailbox -Filter 'LitigationHoldEnabled -eq $true' | Format-Table DisplayName, LitigationHoldEnabled Get-Mailbox -Filter "LitigationHoldEnabled -eq `$true" | Format-Table DisplayName, LitigationHoldEnabled Get-Mailbox -Filter { LitigationHoldEnabled -eq $true } | Format-Table DisplayName, LitigationHoldEnabled Get-Mailbox -Filter { LitigationHoldEnabled -eq 'true' } | Format-Table DisplayName, LitigationHoldEnabled
Ordenar el buzón por tamaño
La propiedad de tamaño del buzón no está incluida en el objeto del buzón devuelto por Obtener buzón. Puedes conseguir el Tamaño total del artículo usando el Obtener-Estadísticas del buzón cmdlet en su lugar.
Normalmente, puede canalizar el Obtener buzón resultados a Obtener-Estadísticas del buzón así:
Get-Mailbox | Get-MailboxStatistics
Sin embargo, si la identidad del buzón es ambigua (no única), recibirá un error similar a este:
Obtener-MailboxStatistics: Ex838C9A|Microsoft.Exchange.Configuration.Tasks.ManagementObjectAmbiguousException | La identidad del buzón especificada: “buzón” no es única.
Para evitar recibir ese error, es mejor procesar cada buzón a través de un bucle, como el Para cada objeto Realice un bucle y especifique cada identidad de buzón única.
Usaré la dirección SMTP principal como identificador único del buzón en este ejemplo. El resultado se muestra en orden descendente por Tamaño total del buzón.
Get-Mailbox -RecipientTypeDetails UserMailbox | ForEach-Object { Get-MailboxStatistics $_.PrimarySmtpAddress.ToString() } | Sort-Object TotalItemSize -Descending | Select-Object DisplayName, TotalItemSize
Obtener información del último inicio de sesión del buzón
Averiguar qué buzones han estado inactivos es una forma de ayudar con la limpieza. Basándonos en el ejemplo anterior, podemos canalizar el Obtener buzón resultados a Obtener-Estadísticas del buzón para determinar cuándo se accedió a los buzones y calcular cuántos días transcurrieron desde entonces.
Get-Mailbox -RecipientTypeDetails UserMailbox | ForEach-Object { Get-MailboxStatistics $_.PrimarySmtpAddress.ToString() } | Sort-Object LastLogonTime -Descending | Select-Object DisplayName, LastLogonTime, @{ n="DaysSinceLastLogOn";e={(New-TimeSpan -Start $_.LastLogonTime -End (Get-Date)).Days} }
La salida está ordenada por última hora de inicio de sesión, empezando por el más reciente.
Obtenga un buzón con permisos de acceso total
Si se pregunta cuál de sus usuarios tiene acceso completo a otros buzones de correo, puede canalizar el Obtener buzón resultados a la Obtener permiso de buzón cmdlet.
$fullAccessPermission = Get-Mailbox -ResultSize Unlimited | ForEach-Object { Get-MailboxPermission -Identity $_.PrimarySmtpAddress.ToString() } | Where-Object { $_.AccessRights -Contains "FullAccess" } $fullAccessPermission | Format-Table Identity, User
Script de PowerShell para obtener el estado de la cuota de almacenamiento del buzón
En versiones anteriores a Exchange Server 2013, el almacén de información almacena en caché el Estado del límite de almacenamiento Propiedad que determina si el estado de uso de almacenamiento del buzón (cuota) es normal, advertencia, envío deshabilitado y envío/recepción deshabilitado.
No existe un método sencillo para obtener el estado de la cuota de almacenamiento del buzón a partir de Exchange 2013 y Exchange Online. Por suerte para usted, hemos creado una función de PowerShell que puede utilizar cómodamente para informar el estado de la cuota del buzón.
Puede obtener el script desde este repositorio →: Obtener estado de cuota del buzón. Importe la función a su sesión de PowerShell mediante abastecimiento de puntos o pegando el código directamente.
Obtenga el estado de la cuota de todos los buzones
Para obtener el estado de la cuota de todos los buzones, ejecute este comando.
Get-Mailbox -ResultSize Unlimited | Get-QuotaStatus
Obtener el estado de la cuota de uno o más buzones
Este ejemplo obtiene el estado de la cuota de un buzón.
# Using the pipeline input Get-Mailbox <identity> | Get-QuotaStatus # Using the parameter input Get-QuotaStatus -Mailbox (Get-Mailbox <identity>) Get-QuotaStatus -Mailbox <email@domain.com>,<Alias>,<SamAccountName>
Conclusión
El Obtener buzón cmdlet es una herramienta indispensable en la caja de herramientas de un administrador de Exchange. Puede ser un comando simple, pero puede usarse para obtener información básica y compleja sobre los buzones de correo de Exchange Server o Exchange Online.