Применимо к: Exchange Server 2010 SP1

Последнее изменение раздела: 2010-09-20

Агент расширения командлета «Агент сценария» в системе Microsoft Exchange Server 2010 позволяет вставлять собственную логику сценария в алгоритм выполнения командлетов Exchange. С помощью агента сценария можно добавлять условия, переопределять значения и настраивать функцию отчетов.

Внимание!
При включении агента расширения командлета «Агент сценария» он вызывается при каждом запуске командлета на сервере под управлением Exchange 2010. Это относится не только к командлетам, запускаемым пользователем в командной консоли Exchange, но и к командлетам, запускаемым службами Exchange, консолью управления Exchange и панелью управления Exchange. Перед копированием обновленного файла конфигурации на серверы Exchange 2010 и включением агента расширения командлета «Агент сценария» рекомендуется протестировать сценарий и проверить все изменения, внесенные в файл конфигурации.

При каждом запуске командлета Exchange вызывается агент расширения командлета «Агент сценария». При вызове этого агента командлет проверяет, необходимо ли выполнение какого-либо сценария. Если для командлета настроено выполнение сценария, командлет пытается вызвать любой из интерфейсов API, определенных в сценарии. В сценарии доступны следующие API, вызываемые в указанном ниже порядке.

  1. ProvisionDefaultProperties   Этот API используется для настройки значений свойств объектов при их создании. При установке значения оно возвращается командлету, который устанавливает его для свойства. Администратор может задать значения для свойств, если они не были указаны пользователем, или может переопределить значение, указанное пользователем. Этот API учитывает значения, установленные агентами с более высоким приоритетом. Агент расширения командлета агента сценария не переопределяет значения, установленные агентами с более высоким приоритетом.

  2. UpdateAffectedIConfigurable   Этот API используется для установки значений свойств объектов после завершения всех других процессов обработки и до вызова интерфейса API Validate. Этот API учитывает значения, установленные агентами с более высоким приоритетом. Агент расширения командлета «Агент сценария» не переопределяет значения, установленные агентами с более высоким приоритетом.

  3. Validate   Этот API используется для проверки значений свойств объектов, которые будут установлены командлетом. Он вызывается непосредственно перед записью командлетом каких-либо данных. Проверку можно настроить таким образом, чтобы командлет мог пройти или не пройти ее. Если командлет проходит проверку в этом API, то ему разрешается запись данных. Если командлет не проходит проверку, он возвращает ошибку, определенную в этом API.

  4. OnComplete   Этот API используется после завершения всех операций обработки командлета. Он может использоваться для выполнения задач после обработки, таких как запись данных во внешнюю базу данных.

Примечание.
Агент расширения командлета «Агент сценария» не вызывается при запуске командлетов с командой Get. Агент также не запускается на серверах Exchange с ролью пограничного транспортного сервера, так как она не поддерживает агенты расширения командлета.

Агент сценария относится к агентам расширения командлета. Дополнительные сведения об агентах расширения командлета см. в разделе Общие сведения об агентах расширения командлета.

Содержание

Файл конфигурации агента сценария

Включение агента сценария

Приоритет агентов

Файл конфигурации агента сценария

Файл конфигурации агента сценария содержит все сценарии, которые должны выполняться агентом сценария. Сценарии в файле конфигурации заключены в тегах XML, которые определяют начало и конец сценария, а также различные входные параметры, необходимые для передачи данных в сценарий. Сценарии пишутся по синтаксическим правилам Windows PowerShell. В файле конфигурации, имеющем формат XML, используются элементы и атрибуты, приведенные в следующей таблице.

Элемент Атрибут Описание

Configuration

Неприменимо

Этот элемент содержит все сценарии, которые могут выполняться агентом расширения командлета «Агент сценария». Тег Feature является дочерним для этого тега.

В файле конфигурации существует только один тег Configuration.

Feature

Неприменимо

Этот элемент содержит набор сценариев, относящихся к какой-либо функции. Каждый сценарий, определенный в дочернем теге ApiCall, расширяет определенный участок конвейера выполнения командлета. В этом теге содержатся атрибуты Name и Cmdlets.

Может существовать несколько тегов Feature на каждый тег Configuration.

 

Name

Этот атрибут содержит имя функции. Этот атрибут позволяет определить функцию, которая расширяется сценарием, содержащимся в теге.

 

Cmdlets

В этом атрибуте содержится список командлетов Exchange, которые будут использоваться набором сценариев в этом расширении функции. Можно указать несколько командлетов, разделяя их запятыми.

ApiCall

Неприменимо

Этот элемент содержит сценарии, которые могут расширять участок конвейера выполнения командлета. Каждый сценарий определяется именем вызова API в расширяемом конвейере выполнения командлета. Ниже приведены имена API, которые могут быть расширены.

  • ProvisionDefaultProperties

  • UpdateAffectedIConfigurable

  • Validate

  • OnComplete

 

Name

Этот атрибут включает в себя имя вызова API, который расширяет конвейер выполнения командлета.

Common

Неприменимо

Этот элемент содержит функции, которые могут использоваться любым сценарием в файле конфигурации.

На каждом сервере Exchange 2010 содержится пример файла ScriptingAgentConfig.xml.sample в папке <путь_установки>\V14\Bin\CmdletExtensionAgents. При включении агента расширения командлета «Агент сценария» имя этого файла необходимо изменить на ScriptingAgentConfig.xml на каждом сервере Exchange 2010. Пример файла конфигурации содержит образцы сценариев, которые помогут понять правила добавления сценариев в файл конфигурации.

После добавления сценария в файл конфигурации или при внесении изменений в этот файл его необходимо обновить на каждом сервере Exchange 2010 в организации. Это необходимо для того, чтобы на каждом сервере содержалась обновленная версия сценариев, выполняемых агентом расширения командлета «Агент сценария».

Некоторые символы, обычно используемые в сценариях, также имеют определенное значение в языке XML. Для использования этих символов в сценарии необходимо использовать escape-последовательности. Например, для следующих символов используются escape-последовательности.

  • Вместо символа «больше, чем» (>) используйте &gt;

  • Вместо символа «меньше, чем» (<) используйте $lt;

  • Вместо амперсанда (&) используйте &amp;

В начало

Включение агента сценария

По умолчанию агент расширения командлета «Агент сценария» отключен. При включении агента сценария он включается для всей организации Exchange 2010. Перед включением агента сценария убедитесь, что файл конфигурации агента был правильно переименован и обновлен пользовательскими сценариями на каждом сервере Exchange 2010. Если файл конфигурации был переименован неправильно, то при каждом запуске командлета будет отображаться сообщение об ошибке.

Чтобы включить агент сценария, выполните следующие действия.

  1. Переименуйте файл ScriptingAgentConfig.xml.sample в папке <путь_установки>\V14\Bin\CmdletExtensionAgents в файл ScriptingAgentConfig.xml на каждом сервере Exchange 2010 в организации.

    Примечание.
    Файл конфигурации можно скопировать с одного сервера Exchange 2010 на другие серверы Exchange 2010. Перед копированием файла конфигурации убедитесь, что он обновлен.
  2. Добавьте свой сценарий в переименованный файл конфигурации на каждом сервере Exchange 2010 в организации. 

  3. Включите агент расширения командлета «Агент сценария». Дополнительные сведения о включении агентов расширения командлета см. в разделе Включение агента расширения командлета.

В начало

Приоритет агентов

По умолчанию агент расширения командлета «Агент сценария» запускается после каждого второго агента, кроме агента журнала аудита администратора. Если необходимо, чтобы существующий агент был заменен созданным сценарием, отключите другой агент или измените приоритет обоих агентов, чтобы агент сценария запускался первым. Дополнительные сведения об отключении агентов и изменении их приоритетов см. в следующих разделах:

В начало