Búsqueda de sitios web

Administrar las reglas de la bandeja de entrada en Exchange con PowerShell


Las reglas del buzón de Outlook permiten a los usuarios configurar diferentes condiciones para procesar los mensajes de correo electrónico entrantes en la carpeta Bandeja de entrada. Puede usar las reglas de Outlook para mover correos electrónicos de remitentes específicos a la carpeta del buzón de destino, reenviar el correo electrónico a otro usuario, etc. Los usuarios pueden crear y administrar reglas de buzón desde la GUI de Outlook. Los administradores de Exchange pueden administrar reglas en los buzones de correo de los usuarios a través de PowerShell. En este artículo, le mostraremos cómo usar PowerShell para crear, eliminar, deshabilitar y modificar las reglas de la bandeja de entrada de Outlook en los buzones de Exchange Server y Microsoft 365 (Exchange Online).

Reglas de Outlook del lado del cliente frente al lado del servidor

Hay dos tipos de reglas de Bandeja de entrada que se pueden configurar en Outlook: reglas del lado del cliente y reglas del lado del servidor.

  • Lado del servidor Las reglas de Outlook se ejecutan en el lado del servidor de Exchange cuando se recibe un correo electrónico. Siempre funcionan, no importa si el usuario está ejecutando un cliente de Outlook o no (las reglas creadas con Outlook Web App siempre son del lado del servidor). Las siguientes reglas se pueden aplicar en el lado del servidor de Exchange: marcar un correo electrónico como importante, mover un correo electrónico a otra carpeta de buzón, eliminar un mensaje, reenviar un correo electrónico a otro buzón;

  • Las reglas del lado del cliente se aplican solo cuando se inicia el cliente de Outlook. Los ejemplos de reglas incluyen mover un correo electrónico a un archivo PST, marcar un correo electrónico como leído (cómo comprobar si un usuario de Exchange ha leído un correo electrónico), mostrar una alerta o reproducir un sonido. No puede administrar estas reglas a través de PowerShell. Estas reglas tienen un estado de "solo cliente" en la interfaz de Outlook.

Se muestra una advertencia cuando crea una nueva regla en Outlook que se procesa en el cliente:

This rule is a client-only rule, and will process only when Outlook is running.

Get-InboxRule: ¿Cómo enumerar las reglas de la bandeja de entrada del usuario en el buzón de Exchange?

Intentemos ver las reglas de la bandeja de entrada en el buzón del usuario. Conéctese a su entorno de Exchange mediante PowerShell.

Puede usar los comandos de PowerShell para conectarse de forma remota a una organización de Exchange Server local:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-exch1.a-d.site/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session

Use el módulo Exchange Online PowerShell para conectarse a su arrendatario M365:

Install-Module -Name ExchangeOnlineManagement
Connect-ExchangeOnline

En Microsoft 365, puede usar la autenticación basada en certificados en PowerShell.

Los siguientes cmdlets se utilizan para administrar las reglas del buzón de correo en Exchange:

  • Get-InboxRule
  • New-InboxRule
  • Enable-InboxRule
  • Disable-InboxRule
  • Set-InboxRule
  • Remove-InboxRule

Para ver una lista de reglas en un buzón de Exchange, ejecute el siguiente comando de PowerShell

Get-InboxRule -Mailbox john.doe

Como puede ver, se muestran el nombre, el estado (Habilitado: Verdadero/Falso), la prioridad y la RuleIdentity de cada regla.

Puede ver información detallada sobre la regla de bandeja de entrada específica especificando su nombre:

Get-InboxRule -Mailbox john.doe -Identity "HelpDesk"| fl

Por lo general, puede comprender el contenido de la regla por su descripción:

Get-InboxRule -Mailbox john.doe -Identity "HelpDesk "| Select Name, Description | fl

El cmdlet Get-InboxRule no enumera las reglas del lado del cliente de Outlook.

Puede haber reglas ocultas del lado del servidor en una bandeja de entrada de Outlook. Estas reglas no son visibles en el cliente de Outlook ni en OWA. Puede enumerar las reglas de buzón oculto mediante el parámetro -IncludeHidden:

Get-InboxRule -Mailbox john.doe -IncludeHidden

Puede usar PowerShell para buscar reglas específicas en el buzón de correo de un usuario. Por ejemplo, debe encontrar todas las reglas para eliminar correos electrónicos:

Get-InboxRule -Mailbox john.doe | ?{ $_.DeleteMessage }

Además, puede haber un escenario, cuando el departamento de seguridad de la información le pida que encuentre todas las reglas de reenvío automático de correo electrónico en todos los buzones de correo de los usuarios de su empresa:

foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.ForwardTo} | fl MailboxOwnerID,Name,ForwardTo >> C:\PS\All_Mailbox_Forward_Rules.txt }

El archivo de texto resultante contendrá la lista de buzones, los nombres de las reglas de reenvío y los destinatarios a los que se reenviarán los mensajes.

Crear una regla de bandeja de entrada en Outlook con PowerShell

Puede crear una nueva regla para la bandeja de entrada de Outlook mediante el cmdlet de Exchange New-InboxRule. Por ejemplo, desea reenviar todos los correos electrónicos que contengan determinadas palabras clave en el asunto a otro usuario. Ejecute este comando:

New-InboxRule -Name ZenossAlerttoHelpdesk -Mailbox NYadmin -SubjectContainsWords "Zenoss HW Alert" -ForwardTo "Helpdesk"

En algunos casos, cuando usa PowerShell para crear reglas en un buzón, todas las reglas del lado del cliente de Outlook están deshabilitadas. En este caso, se muestra una advertencia:

New-InboxRule: Using Outlook Web App or Windows PowerShell to modify your rules will delete any rules that were previously turned off using Outlook. If you want to preserve the rules you turned off using Outlook, select "No" and use Outlook to edit your  rules. Are you sure you want to proceed.

La siguiente regla establecerá la categoría roja y alta importancia para todos los correos electrónicos con la palabra clave "Reunión Anual" en el asunto de la secretaria@a-d.site:

New-InboxRule -Mailbox john.doe -name SecretaryRule -From secretary@a-d.site -SubjectContainsWords “Annual meeting" -ApplyCategory "Red Category"  -MarkImportance "High" -StopProcessingRules $true

Un ejemplo de una regla que mueve todos los mensajes recibidos antes del 01/01/2023 a la carpeta Archivo:

New-InboxRule -Name "Move to Archive" -Mailbox john.doe -MoveToFolder "john.doe:\Inbox\Archive" -ReceivedBeforeDate "01.01.2023"

Reenviar todos los correos electrónicos durante un período de tiempo específico:

New-InboxRule -name ForwardTo -mailbox john.doe -ReceivedAfterDate 12/12/2022 -ReceivedBeforeDate 01/01/2023 -ForwardTo secretary@a-d.site

Al rastrear mensajes en Exchange usando Get-MessageTrackingLog, los eventos de reenvío de correo usando reglas de buzón se muestran en el registro con la fuente MAILBOXRULE.

Puede crear una regla para todos los usuarios en una unidad organizativa (OU) específica en AD que mueve automáticamente los correos electrónicos con el asunto "Casino" a la carpeta de correo no deseado.

$mbxs = Get-mailbox -organizationalUnit Managers
$mbxs | % { }
$mbxs | % { New-inboxrule -Name SpamMail -mailbox $_.alias -subjectcontainswords "[casino]" -movetofolder “$($_.alias):\Junk Email” }

Para ver la lista de todas las propiedades, condiciones y acciones disponibles para usar en las reglas de Exchange:

Get-InboxRule -Mailbox john.doe | get-member

ApplyCategory
BodyContainsWords
CopyToFolder
DeleteMessage
Description
Enabled
FlaggedForAction
ForwardAsAttachmentTo
ForwardTo
From
FromAddressContainsWords
FromSubscription
HasAttachment
HasClassification
HeaderContainsWords
Identity
InError
IsValid
MailboxOwnerId
MarkAsRead
MarkImportance
MessageTypeMatches
MoveToFolder
MyNameInCcBox
MyNameInToBox
MyNameInToOrCcBox
MyNameNotInToBox
Priority
ReceivedAfterDate
ReceivedBeforeDate
RecipientAddressContainsWords
RedirectTo
RuleIdentity
SendTextMessageNotificationTo
SentOnlyToMe
SentTo
StopProcessingRules
SubjectContainsWords
SubjectOrBodyContainsWords
SupportedByTask
WithImportance
WithinSizeRangeMaximum
WithinSizeRangeMinimum
WithSensitivity

Utilizar el

-MessageTypeMatches Calendaring

parámetro para crear una regla para invitaciones de calendario en un buzón de Exchange.

Si desea crear una regla de bandeja de entrada en un buzón de Exchange compartido, asegúrese de que se le haya asignado el rol de "Administración de la organización" o que se le hayan otorgado permisos de "Acceso total". Puede administrar los permisos del buzón mediante PowerShell:

Add-MailboxPermission -Identity itdept -User john.doe -AccessRights FullAccess -AutoMapping:$false -InheritanceType All

Para cambiar una regla de Outlook, use el cmdlet Set-InboxRule:

Set-InboxRule -Mailbox john.doe -identity SecretaryRule -FromAddressContainsWords {gmail.com}

Consejo. El tamaño de las reglas en un buzón de correo de Microsoft Exchange es limitado. De forma predeterminada, se asignan 64 KB para las reglas de la bandeja de entrada en Exchange 2019/2016/2013/2010. Se produce un error si se supera el tamaño de las reglas:

One or more rules could not be uploaded to Exchange server and have been deactivated. This could be because some of the parameters are not supported or there is insufficient space to store all your rules.

Solo se tienen en cuenta las reglas habilitadas. Puede haber un número ilimitado de reglas deshabilitadas en un buzón. Puede cambiar la cuota de reglas (RulesQuota) a 256 KB con este comando:

Set-Mailbox -identity john.doe -RulesQuota 256Kb

¿Cómo deshabilitar y eliminar una regla de la bandeja de entrada de Outlook?

Para deshabilitar una regla específica de la bandeja de entrada de Outlook, use el comando:

Disable-Inboxrule -Mailbox john.doe -Identity “SecretaryRule”

Su estado (Habilitado) cambiará a Falso y ya no se aplicará a los mensajes de correo electrónico entrantes.

Para eliminar por completo una regla de la bandeja de entrada, ejecute este comando:

Remove-Inboxrule -Mailbox john.doe -Identity SecretaryRule

El comando te pedirá que lo confirmes, y solo tienes que pulsar

Y

. Para eliminar todas las reglas del buzón de un usuario, ejecute lo siguiente:

Get-inboxrule -mailbox john.doe | Disable-Inboxrule

Puede eliminar todas las reglas de buzón de Outlook ejecutándolas con un parámetro adicional:

Outlook.exe /cleanrules

Eliminará todas las reglas del lado del cliente y las reglas del servidor para todos los buzones que están configurados en su perfil de Outlook.

Si obtiene un error cuando intenta deshabilitar o habilitar la respuesta automática (Fuera de la oficina) en su buzón:

The Out Of Office Rules cannot be displayed. The client operation failed.

o

System resources are critically low.

La causa del problema son las reglas corruptas en el buzón. Utilice PowerShell para eliminar todas las reglas del buzón (incluidas las ocultas).

Get-InboxRule -Mailbox john.doe -IncludeHidden | Remove-InboxRule

Artículos relacionados