Создание службы Windows из Powershell - PullRequest
0 голосов
/ 21 октября 2019

как мне запустить этот сценарий powershell в качестве службы Windows?

$olSaveType = "Microsoft.Office.Interop.Outlook.OlSaveAsType" -as [type] 

Add-Type -Assembly "Microsoft.Office.Interop.Outlook" $Outlook =
New-Object -ComObject Outlook.Application $Namespace =
$Outlook.GetNameSpace("MAPI") 

$EmailsInFolder= $NameSpace.GetDefaultFolder(6).Folders.Items
$EmailsInFolder | ft SentOn, Subject, Sensitivity -AutoSize -Wrap

foreach ($EmailInFolder in $EmailsInFolder)        
{
   $EmailInFolder.Subject = "Test" 
   $EmailInFolder.Save()
}

Мне нравится менять тему письма при перемещении письма в папке.

С уважением, Стефан

Ответы [ 2 ]

1 голос
/ 21 октября 2019

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

Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматической работы. выполнение. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода работать на стороне клиента. Если вы используете приложение Office из серверного решения, приложению не хватит многих необходимых возможностей для успешной работы. Кроме того, вы будете рисковать стабильностью решения в целом.

Подробнее об этом читайте в статье Соображения по поводу автоматизации Office на стороне сервера.

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

Или, если вы имеете делотолько с профилями Exchange вы можете рассмотреть возможность использования EWS, см. Начало использования веб-служб в Exchange для получения дополнительной информации.

0 голосов
/ 21 октября 2019

Во-первых, вы не можете использовать Outlook (или любое другое приложение Office) из службы. Во-вторых, надстройка COM COM для Outlook может быть лучшим решением - она ​​всегда запускается при работе Outlook, поэтому нет необходимости в службе Windows.

...