среда, 26 октября 2011 г.

Автоматизированное перемещение писем из Exchange почтовых ящиков пользователей.

Задача:
Письма в почтовых ящиках пользователей(List_mailboxes.txt), в которых может встретиться определенный набор фраз скопировать в определенный почтовый ящик, а затем удалить в исходном почтовом ящике. Проще говоря переместить. Набор фраз включаем в простой текстовый файл (Filter_search.txt) - по одной фразе на строчку, в конце не добавляем перевод строки.

Реализация:

#переменная имени файла
$File_Name="[Path_to_file]\List_mailboxes.txt"
$File_Name_Filter_search="[Path_to_file]\Filter_search.txt"

#заполняем массивы строками из файлов
$mass=Get-Content $File_Name
$mass_filter_search=Get-Content $File_Name_Filter_search

#админская учетка
$Admin_username="NETBIOSDOMANANAME\Admin_User"

#ящик куда будем скидывать найденные письма
$Str_TargetMailbox='trash@mydomain.ru'

#цикл перебора строк из файла
foreach($string in $mass)
{
#присваиваем переменной имени пользователя строку из файла
$user_mailbox=$string
#добавляем права адмиской учетке на ящик
Add-MailboxPermission -identity $user_mailbox -Accessrights FULLACCESS -User $Admin_username
foreach($string2 in $mass_filter_search)
{
#присваиваем переменной имени пользователя строку из файла
$str_ContentKeywords=$string2
#копируем элемент из почтового ящика
Export-Mailbox -Identity $user_mailbox -ContentKeywords $str_ContentKeywords -TargetMailbox $Str_TargetMailbox -TargetFolder $user_mailbox -Confirm:$false
#Удаляем элемент из почтового ящика
Export-Mailbox -Identity $user_mailbox -ContentKeywords $str_ContentKeywords -DeleteContent -Confirm:$false



Замечания:

Примечательно, что в качестве одной из фраз - критериев поиска может служить адрес отправителя или получателя, тогда операция по перемещению тоже будет выполняться.
После выполнения этого скрипта Exchange Power Shell получаем следующую картину в ящике trash@mydomain.ru:



Где на картинке после восстановления почтового ящика видно, что появляется Recovered Data, внутри которой повторена вся структура восстановленного ящика, независимо от того были в папках письма или нет.

Примечателен тот факт что контентному анализу не поддаются типизированные файлы, так если в одном из писем есть вложение. Файл вложения типа Word или Excel, например, то если в этих файлах, открыв их соответствующими прилоениями мы разместим некую фразу, например, "яблоко". То "яблоко" не найдется Exchanage сервером при выполнении операций в скрипте.

Если же файл будет - простым - текстовым - *.txt, то фраза найдется. Т.е. что мы имеем - если в файлах при поиске будет обнаружена заданная последовательность символов, то операция выполнится.

Полезные ссылки:

http://www.simple-talk.com/sysadmin/exchange/goodbye-exchange-exmerge,-hello-export-mailbox/

http://technet.microsoft.com/en-us/library/bb266964%28EXCHG.80%29.aspx

http://blog.wadmin.ru/2009/09/using-export-mailbox/

воскресенье, 23 октября 2011 г.

How to fix missing WbemAdap Registry value names for Performance Counters

На некоторых серверах появляются ошибки вида:

Event Type: Error

Event Source: WinMgmt

Event Category: None

Event ID: 10

Date: 22.10.2011

Time: 2:23:07

User: N/A
Description:
Event filter with query "select * from HP_InitCompleteEvent" could not be (re)activated in namespace "//./root/WMI" because of error 0x80041010. Events may not be delivered through this filter until the problem is corrected.

Ссылка по решению:

http://networkadminkb.com/KB/a193/how-to-fix-missing-wbemadap-registry-value-names.aspx