Для управления серверами Exchange через DSC написан специальный модуль xExchange. В нынешнем виде (1.19.0.0) он работает отлично, но не всегда. Например ресурс xExchMaintenanceMode работает не совсем так как ожидается. Если вывести сервер в режим обслуживания, то с точки зрения xExchMaintenanceMode он не будет выведен в режим обслуживания.

Дело тут вот в чём. xExchMaintenanceMode использует следующую команду для вывода сервера-члена DAG в режим обслуживания (строки 207/211 файла MSFT_xExchMaintenanceMode.psm1):

$startDagServerMaintenanceScript -serverName $env:COMPUTERNAME -Verbose

В результате выполнения этой команды узел отказоустойчивого кластера не ставится на паузу. При этом, одно из условий успешного выполнения конфигурации – состояние узла кластера не принимает значение “Up” (строки 370-374)

 if ($maintenanceModeStatus.ClusterNode.State -eq "Up")
{
    Write-Verbose "Cluster node has a status of Up"
    return $false
}

Чтобы это условие выполнилось необходимо в команде вывода сервера в режим обслуживания добавить ключ -PauseClusterNode в строки 207/211 файла MSFT_xExchMaintenanceMode.psm1.

Однако, самые опытные могут сразу же обратиться на страницу с проблемами ресурса xExchange и найти запись под номером 209, в которой как раз и говорится о наличии этой проблемы 🙂

Ссылки:
PowerShell/xExchange
Problem with xExchMaintenanceMode #209