Búsqueda de sitios web

Uso del comando Search-Mailbox PowerShell - Introducción | Parte 1#5


La serie de artículos actual trata sobre un comando de PowerShell muy útil y potente llamado: Search-Mailbox. Me identifico con el comando Search-Mailbox PowerShell como una “navaja suiza” porque podemos usar el comando Search-Mailbox PowerShell para muchos tipos de escenarios.

Conéctese a Exchange Online PowerShell

Para poder ejecutar los comandos de PowerShell especificados en el artículo actual, deberá conectarse a Exchange Online PowerShell.

Inicie Windows PowerShell como administrador y ejecute el cmdlet Connect-ExchangeOnline.

Connect-ExchangeOnline

¿Qué hace el comando Search-Mailbox PowerShell?

El comando Search-Mailbox de PowerShell, como su nombre indica, sirve como herramienta para que el administrador de Exchange realice una búsqueda en los buzones de Exchange (o en varios buzones) para elementos de correo específicos.

El término "elementos de correo" se relaciona con cualquier tipo de elementos del buzón, como mensajes de correo electrónico, reuniones del calendario, contactos, tareas, etc.

El comando Search-Mailbox PowerShell tiene cuatro caracteres distintos y especiales.

1. El resultado de la búsqueda

Asociativamente, podemos suponer que el término "Resultados de la búsqueda" se traduce en algún tipo de índice que enumera todos los resultados de la búsqueda (archivo de registro, etc.). Lo interesante de los “Resultados de búsqueda” del buzón de búsqueda es que los “Resultados de búsqueda” se realizan como una copia de los elementos de correo originales que responden a nuestra consulta de búsqueda.

Por ejemplo, si usamos el comando Search-Mailbox de PowerShell para buscar un mensaje de correo electrónico con una cadena de texto específica en el buzón de Bob, el comando Search-Mailbox de PowerShell nos permite copiar los elementos de correo que responden. nuestra consulta (los “Resultados de la búsqueda”) a otra tienda (el buzón de destino que se analizará más adelante).

2. La “acción” que se puede implementar al utilizar Search-Mailbox

Como se mencionó en la sección anterior, el comando Search-Mailbox de PowerShell puede ayudarnos a buscar (buscar) elementos de correo específicos almacenados en el buzón de Exchange y copiar este elemento de correo a otro almacén (otro buzón de Exchange).

Una "acción" adicional que se puede implementar mediante el comando Buscar-Buzón de PowerShell es una acción muy interesante y poderosa: Eliminación de elementos de correo (Eliminación de los "Resultados de la búsqueda").

Además de un nuevo comando de PowerShell de Office 365 llamado New-ComplianceSearchAction, el comando Search-Mailbox de PowerShell es el único comando que permite al administrador de Exchange "eliminar" (eliminar) correo específico. elementos del buzón de Exchange o de varios buzones de Exchange.

Puede leer más información sobre cómo eliminar elementos de correo usando el comando de PowerShell New-ComplianceSearchAction en el artículo - Buscar y eliminar mensajes de correo electrónico en su organización de Office 365 - Ayuda para administradores

3. El “espacio” del buzón de Exchange

El comando Search-Mailbox de PowerShell nos permitió definir una “ubicación” específica del buzón de Exchange en el que se implementará la acción de búsqueda.

Por ejemplo, podemos indicarle al cmdlet de PowerShell Search-Mailbox que realice una búsqueda solo en la carpeta especial oculta del buzón denominada: la carpeta de correo de recuperación (el contenedor de basura) que sirve como un almacén dedicado para archivos eliminados temporalmente y Elementos de correo eliminados definitivamente.

4. La consulta de búsqueda

El cmdlet Search-Mailbox nos permite definir casi todos los parámetros posibles para definir nuestra consulta de búsqueda, como remitente, destinatario, fecha, tipo de elemento de correo, cadena de texto específica y mucho más.

Además, podemos utilizar una consulta de búsqueda muy sofisticada que combina muchos tipos diferentes de filtros, como mostrar sólo elementos del calendario de una fecha específica que tengan un tema específico.

Estructura del comando Buscar-buzón

El cmdlet Search-Mailbox consta de tres partes:

  • Parte A: en esta parte, definimos los "objetos" que queremos abordar. El objeto es el buzón de Exchange.
  • Parte B: en esta parte, definimos los caracteres específicos de la consulta de búsqueda que debemos realizar. Por ejemplo, busque elementos de correo que incluyan una cadena de texto específica.
  • Parte C: en esta parte, definimos la "acción" específica que queremos aplicar a los resultados de búsqueda que obtenemos de las partes anteriores.

Alcance de la búsqueda

El término "Ámbito de búsqueda" se relaciona con los buzones de correo de Exchange a los que "abordamos" cuando realizamos la búsqueda. El buzón específico o los buzones definidos como “Buzón de origen”.

Escenario 1: búsqueda de elementos de correo | Buzón único de Exchange

En este escenario, la sintaxis del comando de PowerShell se implementa de la siguiente manera:

Search-Mailbox <Source Mailbox> -SearchQuery

Escenario 2: búsqueda de elementos de correo | Múltiples buzones de Exchange

En este escenario, la sintaxis del comando PowerShell se implementa "declarando" el alcance de la búsqueda, es decir, los buzones de Exchange para los cuales se llevará a cabo la tarea de búsqueda.

Luego "canalizamos" el grupo de buzones de Exchange al comando Buscar-Buzón de PowerShell.

Hay muchas opciones que podemos utilizar para definir un "grupo" específico de buzones de Exchange.

Ejemplo 1: realizar una búsqueda en varios buzones | Por ejemplo, todos los tipos de buzones de Exchange, para realizar una búsqueda de elementos de correo en todos los buzones de Exchange existentes, podemos utilizar la siguiente sintaxis de comando:

Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery

Ejemplo 2: realizar una búsqueda en varios buzones | Todos los buzones de USUARIO de Exchange

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox") | Search-Mailbox -SearchQuery

Ejemplo 3: realizar una búsqueda en varios buzones | Todos los buzones compartidos de Exchange

Get-Mailbox -Filter '(RecipientTypeDetails -eq "SharedMailbox") | Search-Mailbox -SearchQuery

Ejemplo 4: realizar una búsqueda en varios buzones | Todos los buzones de la Sala de Intercambio

Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailBox") | Search-Mailbox -SearchQuery

Ejemplo 5: realizar una búsqueda en varios buzones | Buzones de Exchange: miembros del grupo de distribución

En este escenario, queremos realizar una búsqueda definiendo un "grupo de buzones de Exchange" que "pertenecen" (miembros) a un grupo de distribución específico.

Get-DistributionGroupMember <"Distribution Group name"> | Search-Mailbox -SearchQuery

Consulta de búsqueda (filtro de búsqueda)

El cmdlet de PowerShell Search-Mailbox admite una sintaxis muy potente que define la consulta de búsqueda (el filtro de búsqueda o los criterios de búsqueda).

La consulta de búsqueda se implementa utilizando el parámetro - SearchQuery + el filtro específico que queremos usar.

El filtro de búsqueda se puede implementar como una consulta de búsqueda simple o como una consulta de búsqueda avanzada escrita en lenguaje KQL.

Ejemplo 1: buscar un tipo específico de elementos de correo

Podemos definir un filtro de búsqueda que busque solo tipos específicos de elementos de correo.

Por ejemplo,

Para buscar solo elementos del calendario, podemos definir una consulta de búsqueda usando la siguiente sintaxis:

Search-Mailbox <Source Mailbox> -SearchQuery "Kind: meetings"

Para buscar solo elementos de Contactos, podemos definir una consulta de búsqueda usando la siguiente sintaxis

Search-Mailbox <Source Mailbox> -SearchQuery "Kind: contacts"

Ejemplo 2: buscar un elemento de correo enviado desde un remitente específico o enviado a un destinatario específico

En caso de que queramos filtrar el resultado de la búsqueda definiendo un remitente específico o un destinatario específico, podemos usar la siguiente sintaxis

Busque elementos de correo enviados por un remitente específico:

Search-Mailbox <Source Mailbox> -SearchQuery from:"<E-mail address>"

Busque elementos de correo enviados a un destinatario específico:

Search-Mailbox <Source Mailbox> -SearchQuery to:"<E-mail address>"

Ejemplo 3: buscar elementos de correo que se enviaron en una fecha específica

Podemos realizar una consulta de búsqueda relacionada con la "fecha" de los elementos de correo.

Por ejemplo

Busque artículos de correo enviados en una fecha específica:

Search-Mailbox <Source Mailbox> -SearchQuery sent:mm/dd/yyyy

Busque elementos de correo enviados en un rango de fechas específico:

Search-Mailbox <Source Mailbox> -SearchQuery {sent:mm/dd/yyyy..mm/dd/yyyy}

Ejemplo 4: buscar elementos de correo con archivos adjuntos

En caso de que la información que busquemos sean elementos de correo con archivos adjuntos, podemos utilizar la siguiente consulta de búsqueda:

Busque elementos de correo que incluyan un archivo adjunto específico (nombre del archivo adjunto):

Search-Mailbox <Source Mailbox> -SearchQuery attachment:"<Attachment file name>"

Busque CUALQUIER elemento de correo que incluya un archivo adjunto:

Search-Mailbox <Source Mailbox> -SearchQuery {HasAttachment -eq $true}

Ejemplo 5: buscar elementos de correo con una cadena de texto específica

Para buscar correos electrónicos con cadena de texto en el ASUNTO del correo, podemos definir una consulta de búsqueda utilizando la siguiente sintaxis.

Search-Mailbox <Source Mailbox> -SearchQuery ‘Subject:"<Text String>"'

Para buscar correos electrónicos con cadena de texto en el CUERPO del correo, podemos definir una consulta de búsqueda utilizando la siguiente sintaxis.

Search-Mailbox <Source Mailbox> -SearchQuery Body:"<Text String>"'

Cmdlet Search-Mailbox y la “acción” requerida

Podemos definir tres tipos de “acciones” que realizará el comando Search-Mailbox PowerShell:

  1. Crear un archivo de registro: esta opción se puede usar en el caso de que no queramos obtener una copia de los elementos de correo (el resultado de la búsqueda), sino solo un “informe” (Registro) que incluya información sobre los elementos de correo. que fueron encontrados.
  2. Copie los elementos de correo (los resultados de la búsqueda) a “otro” buzón; esta opción se puede utilizar en un escenario en el que queremos recuperar o guardar elementos de correo que aparecen en el resultado de la búsqueda.
  3. Eliminar los elementos de correo que se fundaron: esta opción se puede utilizar en un escenario en el que queremos "destruir" (eliminar) los elementos de correo específicos. Por ejemplo, un escenario en el que nuestra organización fue atacada por un virus y queremos localizar todos los elementos de correo infectados y eliminarlos.

Además, podemos optar por “combinar” un par de “acciones”. Por ejemplo, podemos definir una acción en la que los elementos de correo se eliminarán del buzón de origen, pero además, se guardará una copia de los elementos de correo en un “buzón de destino” + crear un archivo de Registro que incluya información sobre cada uno elementos de correo que aparecen en los resultados de búsqueda.

El concepto de “buzón FUENTE” y “buzón OBJETIVO”

Un concepto importante del cmdlet de PowerShell Search-Mailbox es el concepto de:

  1. Buzón de origen
  2. Buzón de destino
  3. Carpeta de destino

Como se mencionó, la mayoría de las veces la acción de “Resultados de búsqueda” se traduce a un archivo de registro o, a una copia de los elementos de correo que se encontraron en el proceso de búsqueda. .

Para poder "almacenar" los "Resultados de búsqueda" (el archivo de registro o los elementos de correo que se encontraron), necesitamos definir un "almacenamiento de destino", es decir, Buzón de correo de destino . .
Además, necesitamos definir una carpeta de destino que se creará y que contendrá los resultados de la búsqueda.

El cmdlet Search-Mailbox necesitará “saber”: cuál es el buzón de origen, cuál es el buzón de destino (que almacenará la información de búsqueda). resultados) y cuál es el nombre de la carpeta de destino.

Carpeta de destino

Dado que proporcionamos el nombre de la Carpeta de destino, el cmdlet Search-Mailbox creará esta NUEVA carpeta en el Buzón de destino.

Un ejemplo de la sintaxis de PowerShell que utilizamos para definir estas "entidades" podría ser:

Search-Mailbox <Source Mailbox> -TargetMailbox <Target mailbox> -TargetFolder <Target Folder>

La estructura y la convención de nomenclatura de la carpeta de destino.

Como se mencionó, el cmdlet Search-Mailbox crea la carpeta de destino (según el nombre de la carpeta de destino que proporcionamos como parte del comando de PowerShell) en el buzón de correo de destino. . La Carpeta de destino sirve como un "almacenamiento" para los resultados de la búsqueda y tiene una jerarquía específica.

En el siguiente diagrama, podemos ver la estructura de la Carpeta de destino.

Nombre proporcionado de la carpeta de destino

Este es el nombre que proporcionamos como parte de los parámetros obligatorios del comando Search-Mailbox.

Nombre para mostrar del buzón + fecha de búsqueda actual

"Bajo" el nombre de la carpeta de destino, el cmdlet Search-Mailbox crea la siguiente jerarquía:

El buzón de origen "Nombre para mostrar" + el tiempo de búsqueda actual

El "nombre de carpeta" que almacena el resultado de la búsqueda se crea a partir de una combinación del nombre para mostrar del buzón de origen + el tiempo de búsqueda actual.

Observe que la “Hora” que aparece como parte del nombre de la carpeta se considera “GMT +0”.

El significado es que en la mayoría de los escenarios, la “hora” de los resultados de búsqueda que aparece como parte del nombre de la carpeta es una hora diferente a la hora local actual.

En caso de que desee ajustar la hora a su zona horaria local, deberá sumar o restar las horas según su GMT local.

Por ejemplo, mi zona horaria es GMT+3.

En la siguiente captura de pantalla, podemos ver que la hora que se menciona es 10:13
En mi escenario, el “tiempo real” es 13:13 (10:13 + 3 horas).

El nombre de la carpeta: buzón principal

El cmdlet Search-Mailbox crea una carpeta denominada - Buzón principal.

Este término se relaciona con el "buzón de usuario estándar", que se define como: buzón principal.

La razón por la que el cmdlet Search-Mailbox se refiere exclusivamente al buzón estándar es que, en teoría, un usuario de Exchange puede tener un buzón adicional o un buzón secundario que se describe como buzón de archivo.

En el buzón principal, podemos encontrar el resultado de la búsqueda (una copia de los elementos de correo originales del buzón de origen). El cmdlet Search-Mailbox mantendrá la misma jerarquía de carpetas que aparece en el "buzón de origen".

Elementos recuperables

Como se mencionó, una de las capacidades más poderosas del cmdlet Search-Mailbox es la capacidad de buscar y "exportar" (copiar) elementos de correo almacenados en la carpeta de correo de recuperación (Dumpster).

En caso de que los resultados de la búsqueda incluyan elementos de correo que se almacenaron en la carpeta de correo de recuperación (contenedor), se creará una nueva carpeta denominada Elementos recuperables.

Nota: el propietario del buzón no puede ver la carpeta de correo de recuperación (contenedor) porque es una carpeta oculta. Solo el administrador de Exchange que realiza la búsqueda tiene el "privilegio" de ver esta carpeta y el contenido de la carpeta como parte de los resultados de la búsqueda almacenados en el buzón de destino (en la carpeta de destino).

El nombre de la carpeta: buzón de archivo

Este nombre de carpeta “aparece” solo en un escenario en el que el buzón de origen tiene Archivo (buzón adicional).

En este caso, el cmdlet Search-Mailbox almacenará los resultados de búsqueda que se encontraron en el archivo del buzón de origen.

Buzón de origen “espacio” o “alcance”

En esta sección, me gustaría revisar brevemente la forma en que el cmdlet Search-Mailbox se relaciona con el “espacio” del buzón de origen.

El cmdlet Search-Mailbox define el “espacio” del buzón de Exchange.

  1. El espacio del buzón principal.
  2. El espacio de la carpeta de correo de recuperación (Dumpster).
  3. El espacio del buzón de archivo.

De forma predeterminada, el cmdlet Search-Mailbox buscará elementos de correo en las tres partes anteriores.

En algunos escenarios, necesitaremos indicarle al cmdlet Search-Mailbox que "ignore" uno de esos "espacios" o que se "concentre" solo en un "espacio" específico.

Ejemplo 1: realizar una búsqueda solo en la carpeta de correo de recuperación (SearchDumpsterOnly)

Por ejemplo, un escenario en el que necesitamos recuperar elementos de correo que el usuario eliminó temporalmente o eliminó definitivamente. En este caso, queremos definir un alcance de buzón muy específico: la carpeta de correo de recuperación (Dumpster).

Para restringir el alcance de la búsqueda solo para elementos de correo almacenados en la carpeta de correo de recuperación (definida también como Dumpster), podemos usar la siguiente sintaxis:

Search-Mailbox <Source Mailbox> -SearchDumpsterOnly

Ejemplo 2: realizar una búsqueda solo en la carpeta de correo de recuperación (SearchDumpsterOnly)

En este caso, queremos realizar una búsqueda en el buzón, pero no queremos que la búsqueda se ejecute en la carpeta de correo de recuperación (contenedor) del buzón de origen.

Para excluir la carpeta de correo de recuperación (Dumpster) de los resultados de búsqueda, podemos usar el parámetro SearchDumpster:$False

Por ejemplo:

Search-Mailbox <Source Mailbox> -SearchDumpster:$false

En caso de que desee obtener más información sobre la “Carpeta de correo de recuperación”, puede leer el artículo - Recuperar elementos de correo eliminados en el entorno Exchange Online | Recuperación de un solo artículo | 2#7

Ejemplo 3: realizar una búsqueda solo en el buzón principal

En caso de que el usuario tenga un buzón de archivo y queramos excluir el buzón de archivo del proceso de búsqueda, podemos usar ese parámetro DoNotIncludeArchive

Por ejemplo:

Search-Mailbox <Source Mailbox> -DoNotIncludeArchive

Cmdlet Search-Mailbox y permisos necesarios

El uso del cmdlet Search-Mailbox para "espiar" los buzones de Exchange requiere un permiso especial porque, desde el "punto de vista de la privacidad de los datos", estamos analizando datos privados del usuario. En caso de que utilicemos el cmdlet Search-Mailbox para eliminar elementos de correo, estamos eliminando datos privados del usuario.

Para asignar los roles directamente a un usuario a través de PowerShell, ejecute los siguientes comandos de PowerShell:

New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "<user name or alias>"
New-ManagementRoleAssignment -Role "Mailbox Search" -User "<user name or alias>"

Cmdlet y limitación de Search-Mailbox

El cmdlet Search-Mailbox tiene dos limitaciones que debemos conocer.

1. Máximo de “buzones de correo de origen”.
El cmdlet Search-Mailbox puede realizar múltiples búsquedas de buzones para un máximo de 10 000 buzones.

2. Los resultados de búsqueda máximos cuando se usan consultas de búsqueda
Cuando usamos el cmdlet Search-Mailbox + una consulta de búsqueda, es decir, usando el parámetro -SearchQuery , los resultados son limitado a un máximo de 10.000 resultados.

Cuando ejecutamos el cmdlet Search-Mailbox, aparece la siguiente advertencia:

ADVERTENCIA: El cmdlet Search-Mailbox devuelve hasta 10000 resultados por buzón si se especifica una consulta de búsqueda. Para devolver más de 10.000 resultados, utilice el cmdlet New-MailboxSearch o la consola In-Place eDiscovery & Hold en el Centro de administración de Exchange.

Artículos relacionados