Búsqueda de sitios web

Buscar y eliminar correo electrónico del buzón de usuario de Exchange


Un usuario de finanzas envió un correo electrónico al usuario equivocado y pregunta si es posible eliminar el correo electrónico de Exchange Server. El usuario envió el correo electrónico a un usuario interno de la organización. Hay pánico porque el usuario no debería recibir ese correo electrónico. Se le preguntará si puede eliminar ese mensaje de la bandeja de entrada del usuario. Este artículo le enseñará cómo buscar y eliminar correos electrónicos del buzón de correo de un usuario de Exchange con PowerShell.

Información

En este artículo, la usuaria Amanda Morgan (amanda.morgan@exoip.com) envió un correo electrónico al usuario Christopher Payne (christopher.payne@exoip.com) con fecha 10-09-2020 (9 de octubre de 2020). No conocemos el tema. Pero tenemos una hora estimada en la que envió el correo electrónico. Eso es alrededor de las 00:00. ¿Cómo vamos a cumplir la misión?

¿Le gusta buscar y eliminar el correo electrónico de todos los buzones? Lea el artículo Buscar y eliminar mensajes de los buzones de correo de los usuarios de Exchange.

Obtener asunto de correo electrónico

Primero, debemos buscar todos los correos electrónicos enviados por Amanda a Christopher. Si hemos encontrado los correos electrónicos enviados, podremos obtener ese correo específico con el asunto. Antes de comenzar, asegúrese de que haya una carpeta temp en su unidad C:\. De lo contrario, cree una carpeta con el nombre temp.

Filtrar fecha específica

Ejecute el Shell de administración de Exchange como administrador. Utilice el cmdlet Get-MessageTrackingLog para obtener un registro de todos los mensajes de Amanda a Christopher ese día.

[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 23:59:59" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Format-Table -AutoSize

Si el usuario ha enviado muchos correos electrónicos, no será fácil encontrar ese correo electrónico en particular. Por suerte, PowerShell es potente y podremos filtrar el resultado más a nuestro gusto. Veamos cómo podemos hacer eso.

Filtrar fecha y hora específicas

Busca una hora concreta, en nuestro caso, de 00:00:00 - 00:30:00.

[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Format-Table -AutoSize

Timestamp             EventId        Source      Sender                  Recipients                    MessageSubject
---------             -------        ------      ------                  ----------                    --------------
10/9/2020 12:02:09 AM HAREDIRECTFAIL SMTP        Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM RECEIVE        SMTP        Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM AGENTINFO      AGENT       Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM SEND           SMTP        Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM RECEIVE        STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM SUBMIT         STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM DELIVER        STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month

Usar el cmdlet Out-GridView

Utilice el cmdlet Out-GridView para enviar el resultado a una tabla interactiva en una ventana independiente.

[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Out-GridView

El resultado se mostrará de la siguiente manera.

Exportar a archivo CSV

Nos gusta exportar la información a un archivo CSV.

[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Select Timestamp,EventId,Source,Sender,@{Name='Recipients';Expression={[string]::join(";", ($_.recipients))}},MessageSubject | Export-Csv "c:\temp\get_list.csv" -NoTypeInformation

Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, Microsoft Excel.

Ahora que tenemos el asunto, podemos eliminar el correo electrónico de Amanda del buzón de Christopher.

Eliminar correo electrónico de Exchange

Cuando iniciamos sesión en Outlook como el usuario Christopher, podemos ver el correo electrónico de Amanda.

Ejecute el siguiente comando para eliminar el correo electrónico del buzón de Christopher. Confirma con Y y pulsa Enter.

[PS] C:\>Search-Mailbox -Identity "christopher.payne@exoip.com" -SearchQuery 'Subject:"Earnings per month"' -DeleteContent
WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console
in the Exchange Administration Center.

Confirm
Deleting content from mailboxes christopher.payne@exoip.com
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): Y


RunspaceId       : 615c7ca9-d995-4908-800f-be75565ece89
Identity         : exoip.local/Company/Users/Finance/Christopher Payne
TargetMailbox    :
Success          : True
TargetFolder     :
ResultItemsCount : 1
ResultItemsSize  : 7.732 KB (7,918 bytes)

Si no desea confirmar, ejecute el mismo comando para eliminar el correo electrónico del buzón del usuario de Exchange, pero esta vez con el interruptor -Force. Ejecutará el comando y eliminará el correo electrónico, sin pedir confirmación.

[PS] C:\>Search-Mailbox -Identity "christopher.payne@exoip.com" -SearchQuery 'Subject:"Earnings per month"' -DeleteContent -Force
WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console
in the Exchange Administration Center.


RunspaceId       : 615c7ca9-d995-4908-800f-be75565ece89
Identity         : exoip.local/Company/Users/Finance/Christopher Payne
TargetMailbox    :
Success          : True
TargetFolder     :
ResultItemsCount : 1
ResultItemsSize  : 7.732 KB (7,918 bytes)

El correo electrónico se elimina correctamente del buzón.

Verificar los resultados

Eche un vistazo al buzón de Christopher. El correo electrónico se elimina.

Es bueno saber que el correo electrónico se eliminará por completo. No se moverá a los Elementos eliminados del usuario. Además, el usuario no puede recuperarlo de elementos eliminados.

El correo electrónico se elimina del buzón del usuario en Exchange Server. ¿Esto funcionó para ti?

Leer más: Pruebe el flujo de correo interno en Exchange Server »

Conclusión

En este artículo, aprendió cómo eliminar el correo electrónico del buzón del usuario de Exchange usando PowerShell. Comenzamos refinando el resultado de la búsqueda con PowerShell para encontrar el asunto del correo electrónico que se envió. Después de eso, ejecutamos el cmdlet Search-Mailbox, incluido el modificador -DeleteContent para eliminar el correo electrónico del buzón del usuario.

Disfrutaste este artículo? También te puede gustar Crear buzón de usuario en Exchange Server. No olvides seguirnos y compartir este artículo.

Artículos relacionados