Modificar propiedades con varios valores

 

Se aplica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Última modificación del tema: 2007-08-13

En este tema se explica cómo usar el Shell de administración de Exchange para agregar o quitar valores de una propiedad con varios valores en un objeto.

¿Qué es una propiedad con varios valores?

Una propiedad con varios valores es una propiedad que puede tener más de un valor. Por ejemplo, la propiedad BlockedRecipients en el objeto RecipientFilterConfig puede aceptar varias direcciones de destinatario, tal como se muestra en los siguientes ejemplos:

  • john@contoso.com

  • kim@northwindtraders.com

  • david@adatum.com

Dado que la propiedad BlockedRecipients acepta más de un valor, se le llama propiedad con varios valores.

Para obtener más información acerca de objetos, consulte Datos estructurados.

¿Por qué es diferente modificar una propiedad con varios valores?

El modo en que se modifica una propiedad con varios valores es ligeramente diferente al que se usa para modificar una propiedad que acepta un único valor. Cuando se modifica una propiedad que acepta un sólo valor, se le puede asignar un valor directamente, tal como se muestra en el siguiente comando:

Set-TransportConfig -MaxSendSize 12MB

Cuando usa este comando para proporcionar un nuevo valor a la propiedad MaxSendSize, el valor almacenado se sobrescribe. Esto no constituye un problema en el caso de las propiedades que aceptan un único valor. Sin embargo, sí lo es en el caso de las propiedades con varios valores. Por ejemplo, supongamos que la propiedad BlockedRecipients de la propiedad RecipientFilterConfig está configurada para tener los tres valores que se indicaban en la sección anterior. Al ejecutar el comando Get-RecipientFilterConfig | Format-List BlockedRecipients, se muestra lo siguiente:

BlockedRecipients : {david@adatum.com, kim@northwindtraders.com, john@contoso.com}

Supongamos ahora que ha recibido la solicitud de agregar una nueva dirección de Protocolo simple de transferencia de correo (SMTP) a la lista de destinatarios bloqueados. Ejecuta el siguiente comando para agregar la nueva dirección SMTP:

Set-RecipientFilterConfig -BlockedRecipients chris@contoso.com

Cuando vuelva a ejecutar el comando Get-RecipientFilterConfig | Format-List BlockedRecipients, verá lo siguiente:

BlockedRecipients : {chris@contoso.com}

Esto no es lo que usted esperaba. Lo que quería era agregar la dirección SMTP nueva a la lista de destinatarios bloqueados existente. Pero en lugar de ello se ha sobrescrito la lista de recipientes bloqueados existente con la nueva dirección SMTP. Es en esto en lo que se diferencia la modificación de una propiedad con varios valores de la de una propiedad que acepta un sólo valor. Al modificar una propiedad con varios valores se debe estar seguro de que se anexan o quitan valores en lugar de sobrescribir la totalidad de la lista de los mismos. Las siguientes secciones muestran exactamente cómo hacerlo.

Nota

Algunos cmdlets, como Set-TransportRule, no admiten realizar modificaciones de propiedades en objetos de la manera que se describe en este tema. Para obtener más información acerca de cómo agregar y quitar valores de las propiedades con varios valores de estos cmdlets, consulte los temas sobre los mismos, como Set-TransportRule.

Para modificar propiedades con varios valores, debe entender los siguientes conceptos:

Cómo anexar un valor a una propiedad con varios valores

Anexar un valor a una propiedad con varios valores es muy sencillo. Sólo requiere unos cuantos pasos adicionales. De nuevo, asumamos que la propiedad BlockedRecipients tiene los valores que están enumerados en la primera sección.

En primer lugar, debe recuperar el objeto que desea modificar y asignárselo a una variable. Por ejemplo, use el siguiente comando para asignar el objeto RecipientFilterConfig a la variable $Example:

$Example = Get-RecipientFilterConfig

Al ejecutar el comando $Example | Format-List BlockedRecipients, se muestra lo siguiente:

BlockedRecipients : {david@adatum.com, kim@northwindtraders.com, john@contoso.com}

A continuación, debe agregar el valor que desea anexar a la propiedad BlockedRecipients en el objeto almacenado en la variable $Example. Tenga en cuanta que este paso sólo agrega el valor al objeto almacenado en la variable. Para agregar chris@contoso.com a la propiedad BlockedRecipients del objeto almacenado en la variable $Example, ejecute el siguiente comando:

$Example.BlockedRecipients += "chris@contoso.com"

Al volver a ejecutar el comando $Example | Format-List BlockedRecipients, se muestra lo siguiente:

BlockedRecipients : {david@adatum.com, kim@northwindtraders.com, john@contoso.com, chris@contoso.com}

Como puede ver, la dirección SMTP chris@contoso.com se ha agregado a la lista de los valores almacenados en la propiedad BlockedRecipients.

Finalmente, debe guardar el objeto almacenado en $Example mediante el siguiente comando:

Set-RecipientFilterConfig -BlockedRecipients $Example.BlockedRecipients

Ahora, al ejecutar el comando Get-RecipientFilterConfig | Format-List BlockedRecipients, verá que la dirección SMTP chris@contoso.com se ha agregado al servidor.

Anexar varios valores a una propiedad con varios valores

Si desea anexar varios valores a la vez a una propiedad con varios valores, realice los mismos pasos que se han descrito anteriormente. Al especificar los valores que desea anexar, sepárelos con comas, como en el ejemplo siguiente:

$Example.BlockedRecipients += "user1@contoso.com", "user2@contoso.com", "user3@contoso.com"

Una vez haya especificado los valores que desea agregar, use el cmdlet Set-RecipientFilterConfig para guardar el objeto.

Nota

Algunos cmdlets no permiten anexar varios valores al mismo tiempo.

Cómo quitar un valor de una propiedad con varios valores

Es posible que desee quitar solamente un valor de una propiedad con varios valores en lugar de quitarlos todos a la vez. Quitar un valor de una propiedad con varios valores es como anexarlo. No obstante, a diferencia de la anexión de valores, aquí se deben quitar uno por uno. De nuevo, asumamos que la propiedad BlockedRecipients tiene los valores que están enumerados en la primera sección.

En primer lugar, debe asignar el objeto que desea modificar a una variable, como en el ejemplo siguiente:

$Example = Get-RecipientFilterConfig

A continuación, ejecute el siguiente comando, que especifica el valor exacto que desea quitar:

$Example.BlockedRecipients -= "david@contoso.com"

Finalmente, guarde el objeto almacenado en la variable como se indica a continuación:

Set-RecipientFilterConfig -BlockedRecipients $Example.BlockedRecipients

Ejemplos de anexión de valores a propiedades con varios valores

Los siguientes procedimientos del Shell de administración de Exchange son ejemplos de cómo anexar valores a algunas de las propiedades con varios valores disponibles en varios objetos de Microsoft Exchange Server 2007.

Para anexar una dirección SMTP a un buzón

  1. Ejecute los siguientes comandos:

    $Mailbox = Get-Mailbox "Kim Akers"
    $Mailbox.EmailAddresses += "kim@contoso.com"
    Set-Mailbox "Kim Akers" -EmailAddresses $Mailbox.EmailAddresses
    
  2. Ejecute el siguiente comando para ver el buzón actualizado:

    Get-Mailbox "Kim Akers" | Format-List Name, EmailAddresses
    

Para anexar códigos de notificación del estado de entrega (DSN) adicionales en la propiedad GenerateCopyOfDSNFor

  1. Ejecute los siguientes comandos:

    $DsnList = Get-TransportConfig
    $DsnList.GenerateCopyOfDSNFor += "5.4.7", "5.7.1", "5.7.2"
    Set-TransportConfig -GenerateCopyOfDSNFor $DsnList.GenerateCopyOfDSNFor
    
  2. Ejecute el siguiente comando para ver los códigos DSN actualizados:

    Get-TransportConfig | Format-List GenerateCopyOfDSNFor
    

Ejemplos de cómo quitar de valores de propiedades con varios valores

Los siguientes procedimientos son ejemplos de cómo quitar valores de algunas de las propiedades con varios valores disponibles en varios objetos de Exchange 2007.

Para quitar el dispositivo ID de un dispositivo Exchange ActiveSync habilitado desde un buzón de servidor de acceso de cliente (CAS)

  1. Ejecute los siguientes comandos

    $CasDevice = Get-CasMailbox "David Simpson"
    $CasDevice.ActiveSyncAllowedDeviceIDs -= "4B9207650054767AD0AEE83A414BCD7F"
    Set-CasMailbox "David Simpson" -ActiveSyncAllowedDeviceIDs $CasDevice.ActiveSyncAllowedDeviceIDs
    
  2. Ejecute el siguiente comando para ver el buzón CAS actualizado:

    Get-CasMailbox "David Simpson" | Format-List Name, ActiveSyncAllowedDeviceIDs
    

Para quitar un buzón de una lista de buzones con permiso de "enviar en nombre de" en el grupo de distribución

  1. Ejecute el siguiente comando:

    $DistributionGroup = Get-DistributionGroup "Sales Group"
    $DistributionGroup.GrantSendOnBehalfTo -= (Get-Maibox "Christine Hughes").Identity
    Set-DistributionGroup "Sales Group" -GrantSendOnBehalfTo $DistributionGroup.GrantSendOnBehalfTo
    
  2. Ejecute el siguiente comando para ver el grupo de distribución actualizado:

    Get-DistributionGroup "Sales Group" | Format-List Name, GrantSendOnBehalfTo
    

Para obtener más información

Para obtener más información acerca de las características tratadas en este tema, consulte los siguientes temas: