Filtros de destinatarios en los comandos del PowerShell de Exchange

Los cmdlets del Shell de administración de Exchange y Exchange Online PowerShelll admiten diferentes tipos de filtros en cmdlets relacionados con destinatarios:

  • Filtros predefinidos.
  • Filtros personalizados con el parámetro RecipientFilter .
  • Filtros personalizados mediante el parámetro Filter .
  • Filtros personalizados con el parámetro ContentFilter .

En versiones anteriores de Exchange se ha usado la sintaxis de filtrado de LDAP para crear listas de direcciones personalizadas, listas globales de direcciones (GAL), directivas de correo electrónico y grupos de distribución. La sintaxis de filtrado de OPATH reemplazó la sintaxis de filtrado LDAP a partir de Exchange Server 2007.

Filtros prefabricados

Un filtro predefinido usa propiedades populares en Exchange para filtrar a los destinatarios por grupos de distribución dinámicos, directivas de direcciones de correo electrónico, listas de direcciones o LISTAS DE DISPONIBILIDAD. Con los filtros predefinidos, puede usar Exchange PowerShell o el Centro de administración de Exchange (EAC). Con filtros predefinidos, puede realizar las siguientes tareas:

  • Determinar el ámbito de los destinatarios.
  • Agregue el filtrado condicional basado en propiedades comunes como la empresa, el departamento y el estado o la región.
  • Agregar atributos personalizados a los destinatarios. Para obtener más información, vea Custom Attributes.

Los siguientes parámetros se consideran filtros prefabricados:

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 a ConditionalCustomAttribute15.

Los filtros predefinidos están disponibles en los siguientes cmdlets:

Ejemplo de filtro examinado previamente

En este ejemplo se describe el uso de filtros predefinidos en el Shell de administración de Exchange para crear un grupo de distribución dinámico. La sintaxis de este ejemplo es similar, pero no idéntica, a la sintaxis que usaría para crear una directiva de direcciones de correo electrónico, una lista de direcciones o una GAL. Al crear un filtro predefinido, debe realizar las siguientes preguntas:

  • ¿Desde qué unidad organizativa (UO) desea incluir destinatarios (el parámetro RecipientContainer )?

    Nota:

    La selección de la unidad organizativa para este propósito solo se aplica a la creación de grupos de distribución dinámicos y no a la creación de directivas de direcciones de correo electrónico, listas de direcciones o LISTAS DE DISPONIBILIDAD.

  • ¿Qué tipos de destinatarios desea incluir (el parámetro IncludedRecipients )?

  • ¿Qué condiciones adicionales desea incluir en el filtro (los parámetros ConditionalCompany, ConditionalDepartment, ConditionalStateOrProvince y ConditionalCustomAttribute )?

En este ejemplo se crea un grupo de distribución dinámico con las siguientes propiedades:

  • Nombre: Contoso Finance.
  • Tipos de destinatarios: buzones de usuario.
  • Ubicación del destinatario: la unidad organizativa denominada Contoso.com/Users.
  • Filtros Incluya solo los destinatarios que tengan el atributo Department definido como Finance y el atributo Company definido como Contoso.
New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"

En este ejemplo se muestran las propiedades de este nuevo grupo de distribución dinámica.

Get-DynamicDistributionGroup -Identity "Contoso Finance" | Format-List Recipient*,Included*

Filtros personalizados mediante el parámetro RecipientFilter

Si los filtros predefinidos no satisfacen sus necesidades, puede crear filtros personalizados mediante el parámetro RecipientFilter . Este parámetro está disponible en los cmdlets siguientes:

Para obtener más información sobre las propiedades filtrables que puede usar con el parámetro RecipientFilter , vea Propiedades filtrables para el parámetro RecipientFilter.

Ejemplo de filtro personalizado

En el siguiente ejemplo se usa el parámetro RecipientFilter para crear un grupo de distribución dinámico. La sintaxis del ejemplo es similar, pero no idéntica, a la sintaxis que usaría para crear una directiva de direcciones de correo electrónico, una lista de direcciones o una GAL.

En este ejemplo se usan filtros personalizados para crear un grupo de distribución dinámico con las siguientes propiedades:

  • Nombre: AllContosoNorth.
  • Tipos de destinatarios: buzones de usuario.
  • Ubicación del destinatario: la unidad organizativa denominada Contoso.com/Users.
  • Filtros Incluya solo los destinatarios que tengan el atributo Company definido como Contoso y el atributo de Office definido como North Building.
New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientTypeDetails -eq 'UserMailbox') -and (Company -eq 'Contoso') -and (Office -eq 'North Building'))"

Filtros personalizados mediante el parámetro Filter

Puede usar el parámetro Filter para filtrar los resultados de un comando y especificar qué objetos recuperar. Por ejemplo, en lugar de recuperar todos los usuarios o grupos, puede especificar un conjunto de usuarios o grupos mediante una cadena de filtro. Este tipo de filtro no modifica ninguna configuración ni atributos de objetos. Sólo modifica el conjunto de objetos que devuelve el comando.

El uso del parámetro Filter para modificar los resultados de los comandos se conoce como filtrado del lado servidor. El filtrado del lado servidor envía el comando y el filtro al servidor para su procesamiento. También se admite el filtrado del lado cliente, en el que el comando recupera todos los objetos del servidor y, a continuación, aplica el filtro en la ventana de consola local. Para realizar un filtrado del lado cliente, use el cmdlet Where-Object. Si quiere obtener más información sobre el filtrado del lado servidor y del lado cliente, vea "Cómo filtrar datos" en Working with Command Output.

Para encontrar las propiedades que se pueden filtrar para los cmdlets que tienen el parámetro Filter, puede ejecutar el comando Get en un objeto y dar formato al resultado con el parámetro Format-List. La mayoría de los valores devueltos están disponibles para su uso en el parámetro Filter .

En el ejemplo siguiente se devuelve una lista detallada para el buzón Ayla.

Get-Mailbox -Identity Ayla | Format-List

El parámetro Filter está disponible para los siguientes cmdlets de destinatarios:

Para obtener más información sobre las propiedades filtrables que puede usar con el parámetro Filter , vea Propiedades filtrables para el parámetro Filter.

Ejemplo de parámetro de filtro

En este ejemplo se usa el parámetro Filter para devolver información sobre los usuarios cuyo título contiene la palabra "manager".

Get-User -Filter "Title -like 'Manager*'"

Filtros personalizados mediante el parámetro ContentFilter

Puede usar el parámetro ContentFilter para seleccionar el contenido específico de los mensajes que desea exportar al usar el cmdlet New-MailboxExportRequest. Si el comando encuentra un mensaje que contiene la coincidencia con el filtro de contenido, exporta dicho mensaje a un archivo .pst.

Ejemplo de parámetro ContentFilter

En este ejemplo se crea una solicitud de exportación que busca mensajes en el buzón de Ayla donde el cuerpo contiene la frase "folleto de empresa". Si se encuentra esa frase, el comando exporta todos los mensajes con esa frase a un archivo .pst.

New-MailboxExportRequest -Mailbox Ayla -ContentFilter "Body -like 'company prospectus*'"

Para obtener más información sobre las propiedades filtrables que puede usar con el parámetro ContentFilter , vea Propiedades filtrables para el parámetro ContentFilter.

Información adicional acerca de la sintaxis OPATH

Al crear sus propios filtros de OPATH personalizados, tenga en cuenta los siguientes elementos:

  • Use la sintaxis siguiente para identificar los tipos de valores que está buscando:

    • Valores de texto: incluya el texto entre comillas simples (por ejemplo, 'Value' o 'Value with spaces'). O bien, puede incluir un valor de texto entre comillas dobles, pero eso limita los caracteres que puede usar para incluir todo el filtro de OPATH.

    • Variables: incluya variables que deben expandirse entre comillas simples (por ejemplo, '$User'). Si el propio valor de la variable contiene comillas simples, debe identificar (escape) las comillas simples para expandir la variable correctamente. Por ejemplo, en lugar de '$User', use '$($User -Replace "'","''")'.

    • Valores enteros: no es necesario incluir enteros (por ejemplo, 500). A menudo, puede incluir enteros entre comillas simples o comillas dobles, pero eso limita los caracteres que puede usar para incluir todo el filtro de OPATH.

    • Valores del sistema: no incluya valores del sistema (por ejemplo, , $true$falseo $null). Para incluir todo el filtro de OPATH entre comillas dobles, debe escapar el valor del sistema de inicio de sesión en dólares (por ejemplo, `$true).

  • Debe incluir todo el filtro de OPATH entre comillas dobles " " o comillas simples " ". Aunque cualquier objeto de filtro OPATH es técnicamente una cadena y no un bloque de script, puede seguir usando llaves { }, pero solo si el filtro no contiene variables que requieran expansión. Los caracteres que puede usar para incluir todo el filtro de OPATH dependen de los tipos de valores que está buscando y de los caracteres que usó (o no usó) para incluir esos valores:

    • Valores de texto: depende de cómo se encierra el texto que se va a buscar:

      • Texto entre comillas simples: incluya todo el filtro OPATH entre comillas dobles o llaves.
      • Texto entre comillas dobles: incluya todo el filtro OPATH entre llaves.
    • Variables: incluya todo el filtro de OPATH entre comillas dobles (por ejemplo, "Name -eq '$User'").

    • Valores enteros: depende de cómo encierre (o no encierre) el entero para buscar:

      • Entero no incluido: incluya todo el filtro OPATH entre comillas dobles, comillas simples o llaves (por ejemplo "CountryCode -eq 840", ).
      • Entero entre comillas simples: incluya todo el filtro OPATH entre comillas dobles o llaves "CountryCode -eq '840'".
      • Entero entre comillas dobles: incluya todo el filtro OPATH entre llaves (por ejemplo {CountryCode -eq "840"}, ).
    • Valores del sistema: incluya todo el filtro de OPATH entre comillas simples o llaves (por ejemplo 'HiddenFromAddressListsEnabled -eq $true', ). Si se escapa al valor del sistema de signos de dólar, también puede incluir todo el filtro OPATH entre comillas dobles (por ejemplo, "HiddenFromAddressListsEnabled -eq `$true").

    La compatibilidad de los criterios de búsqueda y los caracteres válidos que puede usar para incluir todo el filtro de OPATH se resumen en la tabla siguiente:

    Valor de búsqueda Filtro OPATH
    incluido en
    comillas dobles
    Filtro OPATH
    incluido en
    comillas simples
    Filtro de OPATH incluido en
    ortodoncia
    'Text'
    "Text"
    '$Variable'
    500
    '500'
    "500"
    $true
    `$true
  • Incluya el guion antes de todos los operadores lógicos o de comparación. Los operadores más comunes incluyen:

    • -and
    • -or
    • -not
    • -eq (es igual)
    • -ne (no es igual)
    • -lt (menor que)
    • -gt (mayor que)
    • -like (comparación de cadenas)
    • -notlike (comparación de cadenas)
  • Muchas propiedades filtrables aceptan caracteres comodín. Si utiliza un carácter comodín, use el operador -like en lugar del operador -eq. Use el operador -like para buscar coincidencias de patrones en tipos enriquecidos (por ejemplo, cadenas). Use el operador -eq para buscar una coincidencia exacta.

    Cuando se usa el operador -like en Exchange Online PowerShell, el carácter comodín solo se admite como sufijo en la mayoría de los parámetros. Por ejemplo, "Department -like 'sales*'" se permite, pero "Department -like '*sales'" no se permite.

    Sugerencia

    Incluso si un prefijo comodín funciona en un parámetro de filtro en Exchange Online PowerShell, no se recomienda usarlo debido a problemas de bajo rendimiento.

  • Para obtener más información sobre los operadores que puede usar, consulte:

Documentación de filtros de destinatarios

En la tabla siguiente se incluyen vínculos a artículos que le ayudarán a obtener más información sobre las propiedades filtrables que puede usar con los comandos de destinatario de Exchange.

Artículo Descripción
Propiedades filtrables para el parámetro RecipientFilter en cmdlets de Exchange Obtenga más información sobre las propiedades filtrables que están disponibles para el parámetro RecipientFilter .
Propiedades filtrables para el parámetro Filter en cmdlets de Exchange Obtenga más información sobre las propiedades filtrables que están disponibles para el parámetro Filter .
Filtros en el módulo de PowerShell Exchange Online Obtenga información sobre las consideraciones de los filtros de los nueve cmdlets Get-EXO* exclusivos del módulo de PowerShell Exchange Online.