Filtros de destinatarios en los comandos del PowerShell de Exchange

Los cmdlets en el Shell de administración de Exchange y el PowerShell de Exchange Onlineadmiten distintos tipos de filtros en los cmdlets relacionados con el destinatario:

  • Filtros preenlatados.
  • Filtros personalizados con el parámetro RecipientFilter .
  • Filtros personalizados con 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 OPATH reemplazó a la sintaxis de filtrado LDAP a partir de Exchange Server 2007.

Filtros prefabricados

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

  • Determinar el ámbito de los destinatarios.
  • Agregue filtros condicionales basados en propiedades comunes, como empresa, departamento y estado o 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 to ConditionalCustomAttribute15.

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

Ejemplo de filtro predefinido

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:

  • ¿De qué unidad organizativa (OU) 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 LGD.

  • ¿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 propiedades siguientes:

  • 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 Departamento 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 precanned no satisfacen sus necesidades, puede crear filtros personalizados mediante el parámetro RecipientFilter . Este parámetro está disponible en los siguientes cmdlets:

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 utilizan 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 Empresa definido como Contoso y el atributo Office definido como Edificio Norte.
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 del cliente, en el que el comando recupera todos los objetos del servidor y luego aplica el filtro en la ventana de la 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 , consulte 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 del 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 que la contengan 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 OPATH personalizados, tenga en cuenta los siguientes elementos:

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

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

    • Variables: encierre las variables que necesitan ser expandidas entre comillas simples (por ejemplo, '$User'). Si el valor de la variable contiene comillas simples, deberá identificar (escapar) las comillas simples para expandir la variable correctamente. Por ejemplo, en lugar de '$User', use '$($User -Replace "'","''")'.

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

    • Valores del sistema: no escriba valores del sistema (por ejemplo, $true, , $falseo $null). Para encerrar todo el filtro OPATH entre comillas dobles, debe escapar el signo de dólar en el valor del sistema (por ejemplo, `$true).

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

    • Valores de texto: depende de cómo haya incluido 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 OPATH entre comillas dobles (por ejemplo, "Name -eq '$User'").

    • Valores enteros: Para asegurarse de que funcionan en todos los casos, inclúyalos de una de las siguientes maneras:

      • Entero entre comillas simples: Incluya todo el filtro OPATH entre comillas dobles o llaves "CountryCode -eq '840'".
      • Entero entre comillas dobles: Encierre todo el filtro OPATH entre llaves (por ejemplo {CountryCode -eq "840"}).
    • Valores del sistema: incluya todo el filtro OPATH entre comillas simples o llaves (por ejemplo 'HiddenFromAddressListsEnabled -eq $true'). Si escapa el valor del sistema de signo 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 OPATH se resumen en la tabla siguiente:

    Buscar valor Filtro OPATH
    Encerrado en
    comillas dobles
    Filtro OPATH
    Encerrado en
    comillas simples
    Filtro OPATH incluido en
    llaves
    'Text'
    "Text"
    '$Variable'
    500
    '500'
    "500"
    $true
    `$true
  • Incluya el guión delante de todos los operadores lógicos o de comparación. Los operadores más comunes incluyen:

    • -and
    • -or
    • -not
    • -eq (igual a)
    • -ne (no 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 patrón en tipos enriquecidos (por ejemplo, cadenas). Use el operador -eq para buscar una coincidencia exacta.

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

    Sugerencia

    Aunque un prefijo comodín funcione 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, vea:

Documentación de filtros de destinatarios

La tabla siguiente contiene 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 disponibles para el parámetro RecipientFilter .
Propiedades filtrables para el parámetro Filter en cmdlets de Exchange Obtén más información sobre las propiedades filtrables que están disponibles para el parámetro Filter .
Filtros en el módulo de PowerShell de Exchange Online Obtenga información sobre las consideraciones relativas a los filtros en los nueve cmdlets exclusivos de Get-EXO* del módulo de PowerShell de Exchange Online.