Примерно 2 недели назад на симантековском файлконнекте появился доступ к Enterprise Vault 9.0. Из нового заявлено следующее:

  • Появилась поддержка архивирования почтовых ящиков и общих папок, которые находятся на серверах Exchange 2010 SP1. Кроме этого добавлены скрипты PowerShell для управления доступа к архивам.
  • Появились специальные счётчики, которые регулируют запуск сихронизации оффлайнового хранилища (Vault Cache) при достижении определённых значений (а не только по расписанию).
  • Появилась поддержка Sharepoint 2010.
  • Некоторые улучшения архивирования серверов Domino.
  • Добавлены новые ключи в утилиту FSAUtility, добавлена утилита FSAUndelete.
  • Поддерживаются MacOS X версий 10.5 (Leopard) и 10.6 (Snow Leopard).
  • Сделали доступ к Microsoft Entourage 2008 Web Services Edition через клиента для MacOS X.

Поддержки Outlook 2010 пока нет. Обещают с первым сервис паком для девятки в конце этого года.

Уже достаточно давно столкнулся со следующей проблемой.

Был установлен Microsoft Office Communicator 2007, который складывал в Outlook в папку Conversation History логи разговоров. После обновления до версии 2007 R2 логи резко увеличились в размере (до обновления были 5-7Кб на сообщение, после 50-70Кб на сообщение). Проблема замечена здесь и здесь.

Заметил, что старые логи хранятся в формате ReachText, новые в HTML. Написал с помощью Васи Гусева небольшой скрипт, который позволяет изменять тип сообщений:

$Outlook = New-Object -ComObject outlook.application
$ns = $Outlook.GetNamespace("MAPI")
$MyFolder = $ns.Folders.Item("Mailbox - DisplayName")
$Conv = $MyFolder.Folders.Item("Conversation History")
$Conv.Items | ForEach-Object { If ($_.BodyFormat -eq 2) {$_.BodyFormat = 3; $_.Save()}}

Здесь аттрибут BodyFormat = 2 для сообщений с форматом HTML, BodyFormat = 3 для ReachText. К сожалению, скрипт проблему с размером не мешает. Думаем дальше.

Продолжая тему.
В связи с тем, что в мае официально вышел Office 2010 возникла необходимость распространять список безопасных отправителей с контроллера домена и на Outlook 2010. Для этого придётся скачать административные шаблоны для Office 2010 и внести в шаблон outlk14.adm:

POLICY !!L_JunkMailImportList
KEYNAME "software\policies\microsoft\office\14.0\outlook\options\mail"
PART !!L_Checktoimportjunkmaillists CHECKBOX
VALUENAME "JunkMailImportLists"
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END PART
EXPLAIN !!L_JunkMailImportListExplain
END POLICY

кроме этого в секцию [Strings] надо внести следующее:

L_JunkMailImportList="Junk Mail Import List"
L_Checktoimportjunkmaillists="Check to import junk mail lists"
L_JunkMailImportListExplain="Your should enable Import List to add SafeSenders List file"

Вчера стал доступен для скачивания новый релиз Backup Exec - 2010 R2. Релиз скорее косметический, нового добавили немного. Полный список новшеств следующий:

  • Dedupe enhancements and fixes
  • RSS Reader to stay informed about BE
  • Support Tool Integration providing self-diagnostics and data-gathering from within BE
  • Improved patching experience
  • CPS indexing engine enhanced
  • Direct restore of GRT data from OptDupe without staging
  • Simplified “typical” installation reducing the complexity of the BE install
  • Failed install roll-back keeps BE functional after a failed upgrade
  • Simplified Backup Wizard that asks what, when, where and how?
  • Improved handling of removable devices (USB drives)
  • Enhanced application-level credential validation capabilities
  • Renewal Assistant to facilitate the renewal process
  • Automated renewal alerts at 90, 60, 30 days from maintenance expiration
  • Maintenance contract information now in BELAT and core product
  • SharePoint 2010
  • Mac OSX 10.6 (Snow Leopard)
  • SBS in a Hyper-V environment
  • NDMP – NetApp ONTAP 8.0 and EMC DART 6.0
  • OST support for Data Domain DDOS 4.8 with Boost Technology
  • Кроме этого исправлено огромное количество ошибок выявленных в базовой версии BE2010. Полный список можно посмотреть здесь.


    можно отметить день системного администратора купанием в фонтане и до**ыванием до прохожих.
    типа, а ты умеешь витую пару обжимать?\m/
    а сколько консольных команд вспомнить можешь?

    Пользователя AD можно добавлять в группы другого домена (доменные локальные или универсальные), который находится в том же лесу, что и домен пользователя. Правда, MS советует в такой ситуации использовать глобальную группу, которая находится в том же домене что и пользователь; пользователя добавлять в неё, а саму группу добавлять в группу из другого домена. Если же не прислушиваться к такому совету, то возникает забавная коллизия – в свойствах пользователя на закладке Member Of группа из другого домена не отображается, хотя на закладке Members группы другого домена пользователь есть! Этому даже посвещена одна из статей на сайте поддержки MS.

    Как же посмотреть полный список групп пользователя? В вышеуказанной статье предлагается использовать утилиту showgrps.exe из состава ресурскита для Windows 2000 Server. А что делать если такого ресурскита нет и на дворе 2010 год? Видимо использовать PoSh. У меня для этих целей получился такой вот немного корявый скрипт:

    $EntAdminCred = Get-Credential
    $User = Get-QADUser domain\user -DontUseDefaultIncludedProperties

    Connect-QADService -Service FQDN.domain.controller1 -Credential $EntAdminCred
    Get-QADGroup -ContainsIndirectMember $User.DN -DontUseDefaultIncludedProperties | Select-Object NTAccountname
    Disconnect-QADService

    Connect-QADService -Service FQDN.domain.controller2 -Credential $EntAdminCred
    Get-QADGroup -ContainsIndirectMember $User.DN -DontUseDefaultIncludedProperties | Select-Object NTAccountname
    Disconnect-QADService

    Блок connect/disconnect использовать столько раз – сколько доменов в лесу. $EntAdminCred – логин/пароль администратора, который имеет доступ к учётным записям всех доменов.

    При выходе из клиента OWA на странице выхода доступна только одна кнопка “Закрыть окно/Close Window”. При попытке заново запустить OWA будет необходимо заново в адресной строке указывать место расположения OWA, что очень неудобно. Ситуацию можно упростить добавив кнопку входа на страницу выхода, которая будет перемещать нас на страницу входа, где можно будет заново ввести логин и пароль.

    Чтобы сделать вышенаписанное необходимо немного отредактировать файл logoff.aspx который находится здесь - %ProgramFiles%\Microsoft\Exchange Server\ClientAccess\Owa\auth. Открываем его и ищем строку LogoffClose. Перед открывающей скобкой html-тэга input, который содержит LogoffClose вставляем следующий код:

    <input id="btnCls" type="submit" title="<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogOn) %>" value="<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogOn) %>" onclick="window.navigate('https://mail.contoso.com/owa')" onmouseover="this.className='btnOnMseOvr'" onmouseout="this.className='btn'" onmousedown="this.className='btnOnMseDwn'">

    Результат выглядит примерно следующим образом:

    При нажатии кнопки вход браузер нас перекидывает на страницу ввода логина/пароля.

    Следует помнить, что перед вставкой кода желательно старый logoff.aspx забэкапить. Кроме этого, при установке сервис паков/обновлений на Exchange этот файл может быть перезаписан и его придётся править заново.

    Скрипт взял отсюда.

    Суть проблемы следующая. Имеются общие папки в виде листов задач, которые должны отсылать сообщения ответственным сотрудникам в случае создания новой задачи. В Exchange 2003 для этого с помощью Folder Assistant’а создавались правила, которые и занимались отсылками сообщений. При переносе на Exchange 2007 часть этих правил перестала работать. При попытке их применить правила отключались и в лог уходила ошибка:

    Provider: MSExchangeIS Public Store
    EventID: 1041
    Channel: Application
    Computer:
    EventData: The rule “1-D3F1FE7FAD” with the sequence number 100 was disabled due to the error -2147221220 that was encountered while applying the rule.

    Subject of the message that caused this error is “xxx”
    Problem was found in the function “EcDoPublicFolderRules”.
    The public folder is “xxx” on the database “xxx”

    Некоторое время, потраченное на поиск вывело сюда. Смысл происходящего – в Exchange 2007 изменился механизм отработки правил в общих папках. В Exchange 2003 папке, в которой включалось правило, по умолчанию выдавался почтовый адрес. В Exchange 2007 этот адрес пришлось выдавать вручную, делая эту папку mail-enabled. После того как эта операция была проделана с проблемной папкой – правила стали нормально отрабатывать.

    Как-то без особого шума вышел третий сервис пак для Exchange 2007. Скачать можно отсюда. Описание здесь. Из нового появилось следующее:

    • Поддержка установки на Windows 2008 R2 и Windows 7
    • Password Reset Tool для IIS
    • Обновление компонента Exchange Search до версии 3.1
    • Изменения в схеме AD с новыми аттрибутами для роли UM
    • Поддержка подписей для языков, где буквы пишутся справа налево (типа арабского и иврита)

    Перед установкой не забываем отключать Forefront, если установлен. Процесс установки на кластерные системы я описывал ранее.

    После выхода четвёртого серис-пака для Enterprise Vault 8.0 я попытался его установить на текущий сервер Enterprise Vault и столкнулся с удивительной вещью – в одном из предыдущих сервис-паков из SCL пропала поддержка 32-битной версии Windows 2008, а в sp4 это ограничение появилось и в Deplyment Scanner’е. В итоге я оказался поставлен перед фактом – чтобы поставить sp4 (а в дальнейшем и перейти на версию 9.0) мне необходимо перейти либо на Windows 2008 R2, либо на 64-битную версию Windows 2008.

    Процедура миграции выглядит следующим образом.

    1. Необходимо очистить очередь MSMQ перед началом процесса миграции. Обычно очередь сама очищается после остановки сервиса Task Controller.

    2. Как только очередь очистится – останавливаем все сервисы EV.

    3. Экспортируем следующие ветки реестра:

    • HKLM\Software\KVS\Enterprise Vault\Indexing
    • HKLM\Software\KVS\Enterprise Vault\Storage
    • HKLM\Software\KVS\Enterprise Vault\External Filtering

    и ключи:

    • HKLM\System\CurrentControlSet\Services\MRXSmb\Parameters\OplocksDisabled
    • HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management\PoolUsageMaximum
    • HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management\PagedPoolSize
    • HKLM\Software\Microsoft\MSMQ\Parameters\KernelMemThreshold
    • HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPChimney
    • HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableRSS
    • HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPA

    Если каких-то веток/ключей не будет – то создавать их на новом сервере не надо.

    4. Устанавливаем ОС и EV на новый сервер. Устанавливаем все необходимые обновления. Имя сервера оставляем прежним, как и его сетевые настройки. EV ставим в ту же директорию, что и на старом сервере.

    5. На новый сервер необходимо скопировать файлы в те же папки, где они находились на старом сервере:

    • Vault Stores
    • Indexing files
    • Shopping files
    • Reports
    • Custom Filter Rules

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

    6. Импортируем на новый сервер ветки и ключи реестра, экспортированные в пункте 3.

    7. Через консоль SQL подключаемся к базе EnterpriseVaultDirectory. В таблице StorageServiceEntry находим данные, связанные со старым сервером, в столбцах StorageArchive, StorageRestore, StorageReplayIndex, StorageSpool и удаляем их (если серверов несколько, то эти данные будут в одной строке). В таблице RetrievalTask находим данные, связанные со старым сервером, в столбцах RetrievalSpoolQueue, MessageQueue и удаляем их (если серверов несколько, то эти данные будут в одной строке). В таблице ArchivingRetrievalTask находим данные, связанные со старым сервером, в столбце MessageQueue и удаляем его. Если сервер только один, то можно использовать следующий скрипт:

    USE EnterpriseVaultDirectory
    UPDATE StorageServiceEntry
    SET StorageArchive = ' ', StorageRestore = ' ', StorageReplayIndex = ' ', StorageSpool = ' '
    UPDATE RetrievalTask
    SET RetrievalSpoolQueue = ' ', MessageQueue = ' '
    UPDATE ArchivingRetrievalTask
    SET MessageQueue = ' '

    8. На сервере EV запускаем Enterprise Vault Configuration. Выбираем создать новую директорию. После указания SQL-сервера, который содержит исправленную на предыдущем шаге базу, выскочит сообщение что сервер уже найден в базе и запустится процесс восстановления. По завершении которого будет восстановлена старая конфигурация.

    9. Нужно проконтролировать, что сервисы EV Admin и Directory стартовали. Если нет – запускаем их вручную. После этого запускаем остальные сервисы EV.

    10. Если использовался плагин для OWA, то необходимо повторно запустить скрипт owauser.wsf.

    Оригинал инструкции находится здесь.