Неделю назад успешно сдал экзамены 70-620 и 70-647. Теперь у меня в копилке статус MCITP по трём направлениям – Server Administrator, Enterprise Messaging Administrator и Enterprise Administrator.

Поддержание в актуальном состоянии информации о размере почтовых баз крайне полезно. Это позволяет давать оценку роста почтовых баз и контролировать их размер. Не менее интересно иметь в наличии информацию о размере почтовых ящиков пользователей в базах. Известно, что при онлайновой дефрагментации, которая происходит при выполнении стандартных профилактических работ, размер самого файла базы не изменяется. В Event Log при этом по завершении процесса пишется информация об объёме, который фактически резервируется Exchange-сервером и который заполняется при поступлении новой информации в почтовую базу. Имеется инструмент и для сжатия самого файла почтовой базы на этот объём (eseutil /d).

Ниже привожу скрипт для получения в удобном для обработки виде информации по пользователям/базы размещения их почтового ящика/размере ящика/количестве писем:

#Создаем переменные массивов под размеры писем и их количество
$Sizes = @{}
$Messages = @{}
#Здесь собственно эти массивы заполняются информацией с Exchange-сервера
Get-WmiObject -ComputerName $Server -Namespace rootMicrosoftExchangeV2 -Class Exchange_Mailbox |
ForEach {$Sizes[$_.MailboxDisplayName]=$_.Size; $Messages[$_.MailboxDisplayName]=$_.TotalItems}
#Здесь формируется список следующего вида -
#Имя пользователя, почтовая база, отдел, компания, размер ящика, количество писем
Get-QADUser -IncludeAllProperties -SerializeValues -SizeLimit 0 | Where-Object {$_.homeMDB} |
Select-Object Name, homeMDB, department, Company,
@{name="MailboxSize";expression={$Sizes[$_.DisplayName]}},
@{name="MailboxItems";expression={$Messages[$_.DisplayName]}} | Export-Csv file.csv

Оргомное спасибо Василию Гусеву за этот скрипт.

Предполагается что параметры DisplayName и MailboxDisplayName совпадают для любой учётной записи пользователя. В принципе можно пробовать использовать LegacyDN и LegacyExchangeDN, но это имеет смысл только в случе несовпадения DisplayName и MailboxDisplayName.

Для получения клиентского доступа (через Outlook или OWA, например) к общим папкам Exchange необходимо пользователю назначить как минимум права Folder Visible в клиентских правах доступа. В стандартном описании с работой с правами доступа для клиентов говорится о том, что права раздаются на уровне пользователей. Про группы ничего не говорится. Раньше я как-то пытался раздавать права на общие папки группам, но у меня не заработало, разбираться я не стал и с тех пор считал, что права на общие папки раздаются только пользователям, но не группам.

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

  1. Группа должна быть mail-enabled. Иначе она будет недоступна приназначении прав на общую папку.
  2. Группа должна быть универсальной группой безопасности (USG) или глобальной группой безопасности (GSG). Кроме того, если мы используем универсальную группу распространения (UDG), то Exchange без нашего ведома сам её попытается конвертировать в USG. Подробнее здесь.
  3. Как оказалось, для пользователей из вложенных групп безопасности раздача прав так же не будет производится.

Статью про настройку групп можно посмотреть здесь. Ещё один вопрос с раздачей прав группам рассмотрен здесь.

Во всех ссылках на сайт MS речь идёт о связке MS Windows 2000/MS Exchange 2000. Похоже, что они верны и для связки MS Windows 2003/MS Exchange 2003. При это желательно использовать сервис паки поновее (на всякий случай).

Для восстановления почтовых баз Exchange Microsoft предлагает несколько вариантов действий. Естественно все они исходят из того предположения, что предварительно резервное копирование было сделано утилитой ntbackup. Один из этих вариантов – использование Recovery Storage Group. Предлагаемый алгоритм достаточно прост:

  1. Создаем на одном из серверов административной группы Recovery Storage Group.
  2. Добавляем в неё базу, которую необходимо восстановить (доступны при этом только почтовые базы из этой административной группы). База при этом остаётся в отключенном состоянии с галками “This database can be overwritten by a restore” и “Do not mount this store at start-up”.
  3. После этого запускаем восстановление из бэкапа необходимой базы, указывая при этом в качестве сервера назначения сервер, на котором мы создали группу восстановления. Утверждается при этом, что после п.2 Exchange сам начинает понимать, что базу надо восстанавливать в группу восстановления, а не на оригинальный сервер.
  4. После восстановления базы мы можем, например, с помощью ExMerge выгрузить в pst интересующие нас ящики.

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

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