Предоставление прав доступа группам всех доменов

Мне уже приходилось сталкиваться с ситуацией, когда для Domain Users разных доменов необходимо предоставить права доступа к сетевой директории. Тогда я это делал руками, но сейчас все же решил написать небольшой скрипт.

Вышел новый Microsoft Exchange Server User Monitor

Наконец-то вышла обновленная версия Microsoft Exchange Server User Monitor. Ждать пришлось долго. Заявлена поддержка Exchange 2013 и Exchange 2016. На Exchange 2010 не работает. И это печально, т.к. старая последняя версия ExMon на Exchange 2010 с последними апдейтами работает, но не долго. Через несколько минут зависает.

Скачать ExMon можно на текнете.

Как подключить ранее отключенный архивный ящик

Можно ли заново подключить ранее отключенный архивный ящик? Легко. Для начала, нам надо узнать GUID отключенного архива:

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

Неправильно созданные почтовые ящики

Если для заведения новых учетных записей и создания почтовых ящиков используется автоматизированная система Oracle Identity Manager, то при переходе с Exchange 2003 на Exchange 2010 могут возникнуть проблемы с тем, что новые созданные почтовые ящики на Exchange 2010, создаваемые средствами OIM будут работать не корректно.

Решение проблемы — на сервера с OIM установить Exchange Management Tools соответствующей версии и настроить коннектор.

Но если до этого момента OIM уже создал какое-то количество таких почтовых ящиков, вычислить их можно по атрибуту, к примеру msExchALObjectVersion. Ну а после заново сделать New-MoveRequest:

Автоматизация через Scripting Agent

scripting agent

Многие администраторы Exchange не знают или забывают о таком компоненте, как Cmdlet Extension Agents. Данный компонент входит в Exchange начиная с 2010 версии. Я не буду углубляться в подробное описание, тем более что общую информацию можно посмотреть в текнете, а разжевал ее в своем блоге Алексей Богомолов. Интересует нас Scripting Agent.

Самые популярные задачи, которые необходимо автоматизировать, это установление квот на создаваемые почтовые ящики и отключение ActiveSync. О том, как отключить ActiveSync всем пользователям я писал отдельную заметку.

Итак, в первую очередь в директории Program Files\Microsoft\Exchange Server\V15\Bin\CmdletExtensionAgents вам необходимо создать XML файл с именем ScriptingAgentConfig.xml, вставить в него следующий код:

После чего включить Scripting Agent командой:

Продолжить чтение

Считаем количество почтовых ящиков Exchange

Рано или поздно возникает задача посчитать количество почтовых ящиков Exchange в организации, условия могут быть разные, поэтому я постараюсь разобрать наиболее популярные примеры и немного частных случаев.

Итак, самый простой подсчет, это общее количество почтовых ящиков:

Параметр -ResultSize необходим, если количество ящиков в вашей организации может превышать 1000.
На всякий случай напомню, что если вы осуществляете поиск в организации, где присутствуют несколько доменов, то сначала необходимо выполнить команду:

Иначе вы увидите результат только из текущего домена. Это является довольно распространенным упущением.

Итак, считаем считаем количество почтовых ящиков по всем базам:

Продолжить чтение

Использование netsh удаленно

В прошлой заметке я упомянул использование команды netsh для добавления дополнительного IP адреса на сетевом интерфейсе и проблему со skipassource. У вас, как администратора, желающего все автоматизировать, может возникнуть желание использовать netsh удаленно. В сети можно найти синтаксис команды netsh и для удаленного выполнения он будет выглядеть примерно так:

netsh -r «remotehost» -u «domain\username» -p «password» int ipv4 add address «Local Area Connection» 192.168.1.2 255.255.255.0 skipassource=true

Но не спешите выполнять. Опыт показывает, что команда выполнится, но только на локальном хосте (в случае, если название сетевых интерфейсов совпадает). На удаленном хосте не произойдет ничего. Причина — netsh в полной мере в 2008 R2 не поддерживается, в справках мелькает слово deprecated и рекомендация использовать PowerShell. Я подумал о том, чтобы на 2008 R2 поставить 4-ю версию PowerShell для манипуляций с сетевыми интерфейсами, но для 2008 R2 необходимый модуль NetAdapter в пакет не включили.
Для выхода из ситуации можно использовать утилиту PsExec от Марка Руссиновича. Тогда команда для добавления дополнительного IP адреса будет выглядеть так:

psexec \\remotehost -d cmd.exe /c netsh.exe int ipv4 add address «Local Area Connection» 192.168.1.2 255.255.255.0 skipassource=true

psexec

Для Windows Server 2012 R2 в этих целях можно использовать следующую команду PowerShell:

New-NetIPAddress -CimSession remotehost -InterfaceAlias Ethernet -IPAddress 192.168.1.2 -PrefixLength 24 -SkipAsSource $true

Очередь Exchange: сказ о том, как случайно не создать

очередь Exchange

В один из вечеров раздался звонок пользователя, который заявил, что своему коллеге из партнерской организации не удается отправить сообщение уже который час. Посмотрев на транспортные серверы я, мягко сказать, с немалой долей удивления обнаружил очередь Exchange в пол тысячи сообщений. Хост удаленной организации работал и отвечал на 25 порт, поэтому проблему принято было искать у себя.
Продолжить чтение

MapiExceptionMailboxDisabled: Unable to open message store.

В процессе миграции почтовых ящиков с 2003 на 2010 Exchange может возникнуть проблема, когда пользователю после миграции не удается зайти в свой ящик. На этот ящик так же не удается отправить сообщение, в ответ приходит отбивка:

Возникла проблема в работе почтового ящика получателя. Попытайтесь повторно отправить это сообщение. Если проблема будет возникать снова, обратитесь в службу технической поддержки.

Если вы попробуете переместить пользователя из одной базы в другую, то получите следующую ошибку:

MapiExceptionMailboxDisabled: Unable to open message store. (hr=0x80004005, ec=2412)
Diagnostic context:
Lid: 55847 EMSMDBPOOL.EcPoolSessionDoRpc called [length=144]
Lid: 43559 EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=264][latency=0] и т.д.

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

Clean-MailboxDatabase -Identity <имя базы>

Как запустить gpupdate удаленно

Классический способ, это использование psexec:

Параметром /target:user вы можете указать обновление политики только для пользователя, параметром /target:computer — только для компьютера.

Есть способ, как можно запустить gpupdate удаленно без использования psexec. Это PowerShell командлет Invoke-GPUpdate.

Чтобы запустить форсированное обновление политик компьютера, используйте:

Параметр Target определяет, производить обновление для компьютера или пользователя. Для запуска обновления политик пользователя, замените Target на user.

Параметр RandomDelayInMinutes определяет, через какое время запустится процесс обновления. Чтобы он запустился моментально, укажите 0.

Если вы не укажете параметр Target, то обновление затронет как пользовательские политики, так и политики компьютера.

Должен предупредить, что процесс на конечной машине не останется незамеченным, т.к. появится окно CMD, в котором отображается процесс обновления политик.

А теперь запустим обновление для компьютеров в определенной OU: