Как я писал ранее, 22 октября на fileconnect был выложен новый клиент EV для Office 2010. К сожалению, клиент облегченный (HTTP) и только на английском языке. Тем не менее, вполне готовый к работе.

До установки необходимо установить некоторые обновления для EV:

EV 8.0 SP5 обновлять не нужно.

В Outlook всё выглядит достаточно красиво.

1. Появилась панель с инструментами Enterprise Vault. На неё разместили кнопки Search Vault, Archive Explorer, Store, Restore, More Actions (в выпадающем меню доступна команда Cancel Operation) и Help.

2. На закладке File появилась закладка с настройками Enterprise Vault. Там кнопки – Help и Configure Vault Cache.

Всё остальное без изменений. Клиент облегченный, так что кнопки EV в свойствах папок нет, так же нет соответствующих команд в выпадающих меню.

Таки допилили скрипт с Сашей Трофимовым. Вот что получается:

$EMail = Read-Host "Ведите адрес электронной почты или его часть"
$recipient = '*'+$EMail+'*'

Get-Recipient $recipient | ForEach-Object {if ($_.RecipientType -notlike 'PublicFolder') {$_ |
fl Name,RecipientType} else {Get-PublicFolder $_ | fl Name,Parentpath}}

На выходе имя объекта и его тип, и если тип – общая папка, то путь до неё.

Сообщают, что в самое ближайшее время (а именно 22 октября) будет доступен для скачивания новый клиент EV (9.0.1), который будет полностью поддерживать Outlook 2010. Предыдущая версия в весьма ограниченном виде поддерживала Outlook 2010 (фактически можно было только открывать ярлыки заархивированных писем). Новая версия будет поддерживать оба типа архитектур (32bit и 64bit) и будет только на английском языке. Позже, с выпуском sp1 к EV9.0, станут доступны версии клиентов на других языках.

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

$EMail = Read-Host "Ведите адрес электронной почты или его часть"
$tmp = '*'+$EMail+'*'
"Ищем объект, в электронном адресе которого содержится $EMail"

"Поиск в пользовательских ящиках"
Get-Mailbox -ResultSize unlimited | Where-Object {$_.EmailAddresses -like $tmp} | 
fl RecipientType, DisplayName

"Поиск в группах рассылок"
Get-DistributionGroup -ResultSize unlimited | Where-Object {$_.EmailAddresses -like $tmp} | 
fl RecipientType, DisplayName

"Поиск в общих папках"
Get-PublicFolder  -Recurse -ResultSize unlimited -WarningAction SilentlyContinue | 
Where-Object {$_.MailEnabled -eq 'True'} | ForEach-Object {$PFName = $_.Identity; 
Get-MailPublicFolder $_.Identity -WarningAction SilentlyContinue | 
Where-Object {$_.EmailAddresses -like $tmp} | ForEach-Object { $PFName | fl MapiFolderPath}}

"Поиск завершён"

Скрипт запрашивает адрес или его часть, для которого надо искать объект которому он принадлежит. Для пользователей и групп рассылок возвращается тип объекта и его имя, для общих папок путь до папки с заданным адресом (папки разделяются запятыми, а не слешем).

PS. Саша Трофимов подсказал отличный командлет Get-Recipient для решения этой же задачи. Работает быстрее, выводит данные по умолчанию в виде таблицы со столбцами “Имя, Тип объекта”. Пока ещё не придумал как в него запихнуть Get-PublicFolder для определения пути нахождения общей папки (конструкция вида Get-Recipient | Get-PublicFolder при этом отрабатывает корректно).