Agentes de extensión de cmdlet
Se aplica a: Exchange Server 2013
Los agentes de extensión de cmdlet son componentes de Microsoft Exchange Server 2013 que invocan los cmdlets de Exchange 2013 cuando se ejecutan los cmdlets. Como su nombre indica, los agentes de extensión de cmdlet asisten en el procesamiento de datos o la realización de acciones adicionales en función de los requisitos de los cmdlets, a fin de extender las capacidades de los cmdlets que los invocan. Los agentes de extensión de cmdlet están disponibles en cualquier rol de servidor.
Los agentes pueden modificar, reemplazar o ampliar la funcionalidad de los cmdlets del Shell de administración de Exchange. Una agente puede proporcionar un valor para un parámetro requerido que no se proporciona en un comando, anular un valor proporcionado por un usuario, realizar otras acciones fuera del flujo de trabajo del cmdlet durante la ejecución del cmdlet y más.
Por ejemplo, el cmdlet New-Mailbox acepta el parámetro Database que especifica la base de datos de buzón en la que se va a crear un nuevo buzón. En Microsoft Exchange Server 2007, si no especifica el parámetro Database al ejecutar el cmdlet New-Mailbox, se produce un error en el comando. Sin embargo, en Exchange 2013, el cmdlet New-Mailbox invoca al Mailbox Resources Management
agente cuando se ejecuta el cmdlet. Si no se especifica el parámetro Database , el Mailbox Resources Management
agente determina automáticamente una base de datos de buzón adecuada en la que crear el nuevo buzón e inserta ese valor en el parámetro Database .
Los agentes de extensión de cmdlet solo los puede invocar los cmdlets Exchange 2013 y Microsoft Exchange Server 2010. Los cmdlets Exchange 2007 y los cmdlets de otros productos de Microsoft y de terceros pueden invocar agentes de extensión de cmdlet. Los scripts tampoco pueden invocar a los agentes de extensión de cmdlet directamente. Sin embargo, si los scripts contienen cmdlets de Exchange 2013, esos cmdlets siguen llamando a los agentes de extensión de cmdlet.
¿Está buscando tareas de administración relacionadas con los agentes de extensión de cmdlet? Consulte Administrar los agentes de extensión de cmdlet.
Prioridad de agente
La prioridad de un agente determina el orden en que se invoca al agente durante la ejecución de un cmdlet. En primer lugar, se invoca a un agente que tiene una prioridad más alta, más cerca de cero. La prioridad de un agente adquiere importancia cuando dos o más agentes intentan establecer el valor de la misma propiedad. Prevalece el agente con la prioridad más alta que intenta establecer el valor de una propiedad y se ignoran todos los intentos subsiguientes para establecer la misma prioridad por parte de agentes con una prioridad inferior. Por ejemplo, si un agente con una prioridad de 3 modifica la propiedad Name de un objeto y otro agente con una prioridad de 6 modifica el mismo objeto, se ignora la modificación que realizó el agente con una prioridad de 6.
Si desea usar Scripting agent
para establecer el valor de las propiedades que pueden establecer otros agentes de mayor prioridad, tiene las siguientes opciones:
Deshabilitar al agente que actualmente establece la propiedad.
Establezca en
Scripting agent
una prioridad mayor que el agente existente que desea reemplazar.Mantenga las prioridades de los agentes igual y asegúrese de que el script que se ejecuta en
Scripting agent
respeta el valor proporcionado por los demás agentes.
Advertencia
Cambiar la prioridad o reemplazar la funcionalidad de un agente integrado es una operación avanzada. Asegúrese de comprender por completo los cambios que realiza.
Para obtener más información acerca de cómo modificar la prioridad de un agente, consulte Administrar los agentes de extensión de cmdlet.
Agentes integrados
Exchange 2013 incluye varios agentes que se pueden invocar cuando se ejecuta un cmdlet. La siguiente tabla enumera los agentes y el orden de estos, e indica si los agentes están habilitados de forma predeterminada. No puede agregar ni quitar agentes en o desde un servidor que ejecuta Exchange 2013. Sin embargo, puede usar Scripting agent
para ejecutar scripts de Windows PowerShell para ampliar la funcionalidad de los cmdlets que lo usan. Para obtener más información sobre Scripting agent
, vea la sección "Agente de scripting" más adelante en este tema.
Puede habilitar o deshabilitar la mayoría de los agentes o cambiar la prioridad de los agentes si desea reemplazar la funcionalidad de un agente específico por la funcionalidad que proporcione en un script personalizado al que llame mediante Scripting agent
. Sin embargo, algunos agentes no se pueden deshabilitar. Los agentes que no se pueden deshabilitar se denominan agentes del sistema y tienen su propiedad IsSystem establecida en $True
. La siguiente tabla ofrece información acerca de los agentes de extensión del cmdlet Exchange 2013, incluyendo agentes del sistema.
La configuración de los agentes se almacena en el nivel de la organización. Al habilitar o deshabilitar un agente, o al establecer su prioridad, se establece la configuración de dicho agente en todos los servidores de la organización. La excepción es agregar scripts a Scripting agent
. Debe actualizar los scripts en cada servidor por separado. Para obtener más información sobre cómo configurar scripts para su uso con Scripting agent
, vea la sección "Agente de scripting" más adelante en este tema.
Advertencia
Si no comprende totalmente las acciones que realiza cada agente y la forma en que interactúan con los cmdlets de Exchange, es posible que la modificación de la prioridad de los agentes, o la habilitación o deshabilitación de los agentes ocasionen efectos no deseados. Antes de modificar la configuración de un agente, asegúrese de comprender perfectamente los cambios y resultados que desea y de comprobar que el script personalizado funcione de la forma esperada.
Agentes de extensión de cmdlet de Exchange 2013
Nombre del agente | Prioridad | Habilitado de forma predeterminada | Agente del sistema |
---|---|---|---|
Admin Audit Log agent |
255 | True | Sí |
Scripting agent |
6 | False | No |
Mailbox Resources Management agent |
5 | True | No |
OAB Resources Management agent |
4 | True | No |
Query Base DN agent |
3 | True | No |
Provisioning Policy agent |
2 | True | No |
Rus agent |
1 | True | No |
Mailbox Creation Time agent |
0 | True | No |
Agente de scripting
Puede usar el agente de extensión de Scripting agent
cmdlets en Exchange 2013 para insertar su propia lógica de scripting en la ejecución de cmdlets de Exchange.
Scripting agent
Con , puede agregar condiciones, invalidar valores y configurar informes.
Advertencia
Al habilitar el agente de extensión de Scripting agent
cmdlet, se invoca al agente cada vez que se ejecuta un cmdlet en un servidor que ejecuta Exchange 2013. Esto incluye no solo los cmdlets ejecutados directamente por usted en el Shell de administración de Exchange, sino también los cmdlets que ejecutan los servicios de Exchange y el Centro de administración de Exchange (EAC). Se recomienda encarecidamente probar los scripts y los cambios realizados en el archivo de configuración antes de copiar el archivo de configuración actualizado en los servidores de Exchange 2013 y habilitar el agente de extensión de Scripting agent
cmdlet.
Cada vez que se ejecuta un cmdlet de Exchange, el cmdlet invoca al agente de extensión de Scripting agent
cmdlet. Cuando se invoca a este agente, el cmdlet verifica si la configuración de alguna de las secuencias de comandos indica que el cmdlet la debe invocar. Si se debe ejecutar una secuencia de comandos para un cmdlet, el cmdlet trata de invocar a cualquier API definida en la secuencia de comandos. Las siguientes API están disponibles y se las invoca en el siguiente orden:
ProvisionDefaultProperties: esta API se puede usar para establecer valores de propiedades en objetos cuando se crean. Cuando establece un valor, este valor se envía al cmdlet y el cmdlet establece el valor en la propiedad. Puede completar los valores en las propiedades si el usuario no especificó un valor o puede reemplazar el valor especificado por el usuario. Esta API respeta los valores establecidos por agentes que tienen prioridad mayor. El
Scripting agent
agente de extensión de cmdlet no sobrescribirá los valores establecidos por los agentes de mayor prioridad.UpdateAffectedIConfigurable: esta API se puede usar para establecer valores de propiedades en objetos una vez completado el resto del procesamiento, pero aún no se ha invocado la
Validate
API. Esta API respeta los valores establecidos por agentes que tienen prioridad mayor. ElScripting agent
agente de extensión de cmdlet no sobrescribirá los valores establecidos por los agentes de mayor prioridad.Validar: esta API se puede usar para validar los valores de las propiedades de un objeto que el cmdlet está a punto de establecer. Se llama a esta API justo antes de que el cmdlet escriba los datos. Puede configurar comprobaciones de validación que permitan o no que el cmdlet funcione correctamente. Si un cmdlet tiene un resultado satisfactorio en las comprobaciones de validación de esta API, el cmdlet puede escribir los datos. Si el cmdlet no tiene un resultado satisfactorio en las comprobaciones de validación, regresa todos los errores definidos por esta API.
OnComplete: esta API se usa una vez completado todo el procesamiento de cmdlets. Se puede usar para realizar tareas posteriores al procesamiento, como escribir datos en una base de datos externa.
Nota:
El Scripting agent
agente de extensión de cmdlet no se invoca cuando se ejecutan cmdlets con el Get
verbo .
Archivo de configuración del agente de scripting
El Scripting agent
archivo de configuración contiene todos los scripts que desea Scripting agent
que se ejecuten. Las secuencias de comandos del archivo de configuración están contenidas dentro de etiquetas XML que definen el comienzo y el fin de la secuencia de comandos y varios parámetros de entrada necesarios para transmitir los datos a la secuencia de comandos. Las secuencias de comandos se escriben mediante la sintaxis de Windows PowerShell. El archivo de configuración es un archivo XML que usa los elementos o atributos de la siguiente tabla.
Atributos del archivo de configuración del agente de scripting
Elemento | Atributo | Description |
---|---|---|
Configuration |
No aplicable | Este elemento contiene todos los scripts que puede ejecutar el agente de extensión de Scripting agent cmdlet. La Feature etiqueta es un elemento secundario de esta etiqueta. Solo hay una Configuration etiqueta en el archivo de configuración. |
Feature |
No aplicable | Este elemento contiene un conjunto de secuencias de comandos relacionados con una característica. Cada script, definido en la ApiCall etiqueta secundaria, extiende una parte específica de la canalización de ejecución del cmdlet. Esta etiqueta contiene los Name atributos y Cmdlets . Puede haber varias Feature etiquetas bajo la Configuration etiqueta . |
Name |
Este atributo contiene el nombre de la característica. Use este atributo para ayudar a identificar qué característica es extendida por las secuencias de comandos de esta etiqueta. | |
Cmdlets |
Este atributo contiene una lista de los cmdlets Exchange que usa el conjunto de scripts en esta extensión de la característica. Puede especificar varios cmdlets al separar cada uno de ellos con una coma. | |
ApiCall |
No aplicable | Este elemento contiene secuencias de comandos que pueden extender una parte de la canalización de ejecución del cmdlet. Cada secuencia de comandos está definida por el nombre de llamada API de la canalización de ejecución de cmdlet que está extendiendo. Los siguientes son los nombres de API que se pueden extender:
|
Name |
Este atributo incluye el nombre de la llamada API que está extendiendo la canalización de ejecución de cmdlet. | |
Common |
No aplicable | Este elemento contiene funciones que puede usar cualquier secuencia de comandos del archivo de configuración. |
Cada servidor de Exchange 2013 incluye el archivo ScriptingAgentConfig.xml.sample en la %ExchangeInstallPath%CmdletExtensionAgents
carpeta . Se le debe cambiar el nombre a este archivo por el nombre ScriptingAgentConfig.xml en cada servidor Exchange 2013 si habilita el agente de extensión de cmdlet del agente de scripting. El archivo de configuración de muestra contiene secuencias de comandos de muestra que puede usar para ayudarle a comprender cómo agregar secuencias de comandos al archivo de configuración.
Después de agregar una secuencia de comandos al archivo de configuración, o después de hacer un cambio en el archivo de configuración, debe actualizar el archivo en cada servidor Exchange 2013 de la organización. Esto debe hacerse para asegurarse de que cada servidor contiene una versión actualizada de los scripts que ejecuta el agente de extensión de Scripting Agent
cmdlet.
Algunos caracteres que se usan normalmente en las secuencias de comandos también tienen un significado especial en XML. Para usar estos caracteres en la secuencia de comandos, use secuencias de escape. Por ejemplo, los siguientes caracteres usan una secuencia de escape:
- En lugar de un signo mayor que ( ), use .
>
>
- En lugar de un signo menor que (
<
), use$lt;
- En lugar de una y comercial (
&
), use .&
Habilitación del agente de scripting
El Scripting agent
agente de extensión de cmdlet está deshabilitado de forma predeterminada. Al habilitar Scripting agent
, el agente está habilitado para toda la organización de Exchange 2013. Antes de habilitar Scripting agent
, compruebe que el Scripting agent
archivo de configuración se ha cambiado de nombre y actualizado correctamente con los scripts en cada servidor de Exchange 2013. Recibirá un mensaje de error cada vez que un cmdlet se ejecute si no ha cambiado el nombre del archivo de configuración correctamente o copiado un archivo de configuración en este equipo desde otro servidor Exchange 2013.
Para habilitar Scripting agent
, debe hacer lo siguiente:
Cambie el nombre del archivo ScriptingAgentConfig.xml.sample en
%ExchangeInstallPath%Bin\CmdletExtensionAgents
a ScriptingAgentConfig.xml en cada servidor de Exchange 2013 de su organización.Nota:
Puede copiar el archivo de configuración de un servidor Exchange 2013 a otros servidores Exchange 2013. Asegúrese de actualizar el archivo de configuración que desea copiar antes de copiarlo.
Agregue la secuencia de comandos al archivo de configuración que tiene el nombre cambiado en cada servidor Exchange 2013 de la organización.
Habilite el agente de extensión de
Scripting agent
cmdlet. Para obtener más información sobre cómo habilitar agentes de extensión de cmdlet, consulte Administrar los agentes de extensión de cmdlet.
Prioridad de agente de scripting
De forma predeterminada, el agente de extensión de Scripting agent
cmdlet se ejecuta después de cada otro agente, con la excepción del Scripting agent
agente. Si desea que un script que creó para reemplazar un agente existente, deshabilite el otro agente o cambie la prioridad de cualquiera de ellos para que el agente de extensión de Scripting agent
cmdlet se ejecute primero. Para obtener más información acerca de cómo deshabilitar o cambiar la prioridad de los agentes, consulte Administrar los agentes de extensión de cmdlet.