Агенты расширения командлетов - это новый компонент Exchange 2010, который активируется в момент выполнения определенного командлета. С помощью них можно расширить функциональность Exchange 2010 фоновым запуском дополнительных команд или скриптов. Одним из семи агентов является агент сценариев, который по умолчанию отключен. В данной статье мы рассмотрим пример его использования.
Командлет Get-CmdletExtensionAgent покажет нам все 7 агентов. Запустите команду Get-CmdletExtensionAgent | ft name, priority, enabled –wrap –autosize .
Рассмотрим следующую задачу. Мы хотим чтобы каждый раз после создания нового почтового ящика для него автоматически устанавливались определенные настройки.
- POP, IMAP, ActiveSync отключаем
- Outlook Anywhere отключаем
- Single Item Recovery включаем
- Автоматически заполняем поля Country, City, Street Address, Company.
- Блокируем использование Outlook в онлайн режиме
- Устанавливаем OWA Mailbox Policy
После включения агент сценариев использует файл “ScriptingAgentConfig.xml”, который находится в директории \Bin\CmdletExtensionAgents. По умолчанию в этой директории расположен файл “ScriptingAgentConfig.xml.sample” который дает нам пример использования синтаксиса.
Ниже показано содержание данного файла:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
<Feature Name="Name" Cmdlets="cmdlets">
<ApiCall Name="OnComplete"> if($succeeded)
{ PowerShell cmdlets }
</ApiCall>
</Feature>
</Configuration>
Для решения поставленной перед нами задачи модифицируем файл следующим образом.
<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
<Feature Name="MailboxProvisioning" Cmdlets="new-mailbox">
<ApiCall Name="OnComplete">
if($succeeded)
{
$mailbox = $provisioningHandler.UserSpecifiedParameters["Alias"]
Set-CASMailbox $mailbox -ImapEnabled $false -POPEnabled $false –ActiveSyncEnabled $false –OWAMailboxPolicy "HEW OWA Policy” –MAPIBlockOutlookRpcHTTP $true –MAPIBlockOutlookNonCachedMode $true
Set-User -City 'London' -CountryOrRegion 'United Kingdom' -Company 'How Exchange Works' -Identity $mailbox
Set-Mailbox $mailbox -SingleItemRecoveryEnabled $true
}
</ApiCall>
</Feature> </Configuration>
Строка <Feature Name=”MailboxProvisioning” Cmdlets=”new-mailbox,enable-mailbox”> означает, что мы хотим чтобы наш код запускался после любого успешного запуска командлетов new-mailbox или enable-mailbox. После запуска данных командлетов через шелл, консоль или стороннее приложение агент сценариев запускает указанные нами команды. В самом начале мы сохраняем алиас пользователя в переменную $mailbox для использования в коде.
Был сохранен приведенный код в файл ScriptingAgentConfig.xml в директории \Bin\CmdletExtensionAgents folder.
Следующим шагов является включение агента сценариев. Агент должен быть включен только после создания файла ScriptingAgentConfig.xml. Выполните команду Enable-CmdletExtensionAgent “Scripting Agent” для включения агента.
Настало время для проверки! Я создал тестовый ящик и проверил что агент сценариев установил все необходимые для него опции.
Надеюсь данная статья поможет вам понять предназначение агента сценариев и вы начнете использовать эту замечательную возможность в вашей организации
|