с

тоящее время я работаю над сценарием PowerShell, который должен извлечь все почтовые сообщения из определенного почтового ящика в виде файлов .eml или .msg и сохранить их на резервном сервере. Я использую PowerShell версии 5 с модулем консоли управления Exchange 2010 (EWS).

В настоящее время мой скрипт может получить доступ ко всем сообщениям в папке «Входящие» с их свойствами, такими как «Тело», «Тема», «Вложения» и т. Д. Однако я не смог найти простой способ или способ экспортировать сообщения (с их вложениями). Итак, мой вопрос: предоставляет ли EWS в Exchange 2010 метод для извлечения / сохранения сообщения из почтового ящика?

Вот мой сценарий:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\1.2\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1)
$windowsIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$sidbind = "LDAP://<SID=" + $windowsIdentity.user.Value.ToString() + ">"
$aceuser = [ADSI]$sidbind
$service.AutodiscoverUrl($aceuser.mail.ToString())

$MailboxName = ge,t-mailbox -Identity [email protected]

$folderidcnt = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$MailboxName.PrimarySmtpAddress.ToString())
$rootfolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, $folderidcnt)


$offset = 0;
$view = new-object Microsoft.Exchange.WebServices.Data.ItemView(10000, $offset)

$response = $service.LoadPropertiesForItems($results, [Microsoft.Exchange.WebServices.Data.PropertySet]::FirstClassProperties)

foreach ($mail in $results){

if ($mail.ToString() -eq "Microsoft.Exchange.WebServices.Data.EmailMessage"{
    **"Function to export this message an an .eml or .msg file on a remote shared folder"**
     }
}

Ответы на вопрос(1)

Ваш ответ на вопрос