Automatización de Microsoft Exchange
Automatizar las tareas recurrentes de Microsoft Exchange y Exchange Online con PowerShell es clave para los profesionales de TI e ingenieros de sistemas exitosos. Este artículo explora seis casos de uso de PowerShell para administrar Microsoft Exchange.
Microsoft Exchange y Exchange Online siguen siendo la piedra angular del correo electrónico, el calendario y los contactos en muchas organizaciones. A medida que los entornos Exchange crecen en complejidad, los administradores buscan herramientas que puedan optimizar las tareas de administración. PowerShell, con su potente shell de línea de comandos y lenguaje de secuencias de comandos, ofrece una solución sólida para administrar Exchange (en línea) de manera más eficiente que las interfaces gráficas de usuario (GUI) tradicionales.
¿Por qué utilizar PowerShell para la gestión de Microsoft Exchange?
- Automatización: los scripts de PowerShell automatizan tareas repetitivas, garantizando coherencia y ahorrando tiempo.
- Acceso a una amplia gama de funciones: solo se puede acceder a algunas configuraciones y funciones de Exchange a través de PowerShell, lo que ofrece más control sobre el sistema.
- Operaciones por lotes: PowerShell permite el procesamiento por lotes de tareas, como actualizar varios buzones de correo simultáneamente, lo cual resulta engorroso a través de GUI.
- Administración remota: los administradores pueden administrar entornos Exchange de forma remota a través de PowerShell, una necesidad para administrar servidores en múltiples ubicaciones.
- Integración: los scripts de PowerShell se pueden integrar con otros sistemas y servicios, proporcionando un enfoque unificado para la administración de TI.
Echemos un vistazo a algunos casos de uso de la vida real para la automatización de Microsoft Exchange PowerShell.
Cmdlet 1: Obtener buzón
Get-Mailbox recupera información sobre los buzones de correo en su entorno Exchange (Online).
Este resumen audita rápidamente la configuración y el estado de los buzones de correo en toda la organización:
Get-Mailbox -ResultSize Unlimited | Format-Table DisplayName, ServerName, ProhibitSendQuota Cmdlet 2: Get-EXOMailbox
Get-EXOMailbox solo está disponible en Exchange Online. Proporciona detalles de las propiedades y configuraciones del buzón de Exchange Online. El siguiente ejemplo combina Get-EXOMailbox con el cmdlet Get-EXOMailboxStatistics y muestra los 10 buzones de correo más grandes del entorno.
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize -First 10 Cmdlet 3: Establecer buzón
El cmdlet Set-Mailbox le permite configurar las propiedades del buzón. Puede cambiar más de 130 configuraciones de buzón, por ejemplo cuotas o permisos. Los siguientes ejemplos de código contienen el parámetro -WhatIf. Permite simular y probar los resultados primero.
Get-User | where {$_.Department -eq "Sales"} | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 5GB -IssueWarningQuota 4GB -Whatif Cmdlet 4: Get-DistributionGroup
¿Quiere buscar grupos de distribución existentes? Entonces Get-DistributionGroup es el cmdlet correcto. El siguiente ejemplo muestra todos los atributos de los grupos de distribución que contienen el nombre "Consultoría".
Get-DistributionGroup -Filter {name -like "*Consulting*"} |Select-Object * |Out-GridViewCmdlet 5: Nuevo buzón
Con New-Mailbox puede crear uno o varios buzones de Exchange. A continuación se muestra un ejemplo para crear nuevos buzones de correo basados en un archivo csv.
$mbxs = Import-Csv 'C:\users.csv'Foreach ($mbx in $mbxs) {New-Mailbox -Name $mbx.DisplayName -DisplayName $mbx.DisplayName -MicrosoftOnlineServicesID $mbx.UserPrincipalName -Password (ConvertTo-SecureString -String 'YourPassword' -AsPlainText -Force) -ResetPasswordOnNextLogon $true -MailboxPlan 'MailboxPlan'}Cmdlet 6: Set-MailboxAutoReplyConfiguration
Utilice el cmdlet Set-MailboxAutoReplyConfiguration para activar notificaciones de fuera de la oficina para sus usuarios. Te permite habilitar mensajes por tiempo ilimitado o programarlos para un período de tiempo específico.
$autoReplyParams = @{
Identity = "john@doe.com"
AutoReplyState = "Enabled"
ExternalMessage = "Hello, I'm currently not in the office."
InternalMessage = "Hello colleague, I'm currrently not in the office"
}
Set-MailboxAutoReplyConfiguration @autoReplyParamsConclusión
El uso de PowerShell para administrar Exchange, ya sea local o en línea, proporciona un alto nivel de eficiencia, flexibilidad y control. Los cmdlets enumerados anteriormente son herramientas fundamentales para que los administradores realicen una amplia gama de tareas de manera más efectiva que a través de GUI. Al dominar estos cmdlets, los administradores pueden garantizar que sus entornos Exchange estén bien administrados, sean seguros y se adapten a las necesidades de su organización. Obtenga más información sobre cómo administrar Exchange (Online) con PowerShell en nuestro seminario web "Simplifique su administración de Exchange (Online) con PowerShell".
