Exchange 2013 Tips & Tricks – Run Exchange scripts using Task Scheduler

Всем привет!

Рано или поздно возникает необходимость запускать какие-либо скрипты  для Exchange по расписанию, например в ночное время. Сделать это можно через Task Scheduler. У этого способа есть 2 варианта реализации с небольшими различиями.


Итак, вот эти 2 варианта:

  • если на сервере установлены Exchange Management Tools
  • если на сервере не установлены Exchange Management Tools


Для первого варианта необходимо создавать задание в Task Scheduler со следующей командой на выполнение:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "$ExSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ex2013.deploy2013.guide/PowerShell/ -Authentication Kerberos ; Import-PSSession $ExSession ; C:\Scripts\MyScript.ps1"

Для второго варианта необходимо создавать задание в Task Scheduler со следующей командой на выполнение:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\Scripts\MyScript.ps1"



В чем же их различие?

Если на сервере, где вы планируете запускать регламентные скрипты, не установлены Exchange Management Tools, то для того, чтобы подключиться к Exchange необходимо использовать следующие 2 команды:

$ExSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ex2013.deploy2013.guide/PowerShell
Import-PSSession $ExSession

image

Если же Exchange Management Tools установлены, то подключение к Exchange выполняется следующим образом:

. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

image

Главное различие этих методов подключений – тип возвращаемых данных. Давайте рассмотрим на простом примере: необходимо узнать размер почтовой базы в байтах. Для этого будем использовать следующую команду:

(Get-MailboxDatabase -Status).DatabaseSize

Результаты этих команд будут одинаковые:

image

image


Тем не менее, если вы захотите в дальнейшем использовать эти значения, например для отображения значения в GB, то вот здесь и кроется различие этих двух методов подключения. В первом случае возвращается строка, во втором случае объект размера, что делает невозможным использование встроенных методов для преобразования значений:

image

image

И если дальше использовать метод ToGB() то, в первом случае будет ошибка, а во втором – ошибка не будет.

Аналогичная особенность относится ко многим возвращаемым параметрам.


Читайте также:

Добавить комментарий