2016-05-23 12 views
0

Когда я пытаюсь запустить Outlook через Interop, используя имя профиля, он открывает диалоговое окно для пароля. Этот скрипт запускается из задачи Task Task Scheduler. Использует ли он учетную запись администратора при выполнении этих задач? Профиль был создан, и моя учетная запись электронной почты только одна загружена здесь.Войдите в Outlook через Process without Dialog для пароля

Always prompt for login credentials не выбран для учетной записи, указанной в профиле.

Это сетевой компьютер в домене. Outlook 2010.

Профиль Switch (link):

Process.Start("Outlook", "/profile profilename") 
'logs in with a prompt for the password 

Как я могу передать пароль в коде и избежать диалога?

В качестве альтернативы У меня есть макрос, который делает то, что мне нужно, но я не смог заставить его работать, когда профиль загружается. Это также решило бы проблему. Включенные макросы проверяются в Центре доверия.

Благодаря

ответ

0

Во-первых, вам нужно запустить оба приложения в том же контексте безопасности, чтобы иметь возможность автоматизировать один от другого.

Это приложение запуск с помощью планировщика задач Windows

Microsoft в настоящее время не рекомендуется, и не поддерживает, автоматизации приложений Microsoft Office из любого без присмотра, не интерактивного клиентского приложения или компоненты (в том числе ASP, ASP.NET, DCOM и NT), потому что Office может проявлять нестабильное поведение и/или тупик, когда Office запущен в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были безопасны для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы часть кода запускать клиентскую сторону. Если вы используете приложение Office из серверного решения, для успешного выполнения приложения не будет достаточного количества необходимых возможностей. Кроме того, вы рискуете стабильностью своего общего решения. Подробнее об этом читайте в статье Considerations for server-side Automation of Office.

В качестве обходного пути вы можете использовать API низкоуровневого интерфейса, на котором основан Outlook, - Extended MAPI. Или любая сторонняя оболочка вокруг этого API, например Redemption.