Создание новой электронной почты Outlook 365 в PowerShell - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь создать электронную почту Outlook в PowerShell, и везде я нашел один и тот же код:

$ol = New-Object -comObject Outlook.Application

$mail = $ol.CreateItem(0)
$mail.Subject = "<Subject>"
$mail.Body = "<Body>"

, а затем либо

$inspector = $mail.GetInspector
$inspector.Display()

, либо

$mail.Display()

, чтобы показать электронную почту.

Однако, в самой первой строке я получаю эту ошибку:

New-Object : Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

Я пробовал без -comObject и получаю другую ошибку:

New-Object : Cannot find type [Outlook.Application]: verify that the assembly containing this type is loaded.

Я пытался загрузить сборку с помощью

[Reflection.Assembly]::LoadWithPartialname("Microsoft.Office.Interop.Outlook") | out-null

, но все равно получаю те же сообщения об ошибках при выполнении предыдущих команд.

Если это имеет значение, мы используем Office 365, но у меня установлена ​​локальная копия Office. Есть ли другой тип объекта, который мне нужно использовать с Office 365?

Кроме того, похоже, что он пытается связаться с сервером для создания объекта. Есть ли способ заставить меня сделать это локально?

1 Ответ

1 голос
/ 04 февраля 2020

CO_E_SERVER_EXEC_FAILURE означает, что Outlook работает в контексте безопасности, отличном от контекста вашего приложения. Система COM отказывается маршалировать вызовы между процессами, работающими в разных контекстах безопасности.

...