Назад | Перейти на главную страницу

Сценарий PowerShell для поиска приглашений на собрания в почтовом ящике Exchange и их принятия

Можно ли создать сценарий PowerShell, который войдет в почтовый ящик (специально для комнаты собраний), найдет все его запросы на собрания и примет их?

Мы внедрили новый механизм в нашу среду обмена, так что запросы, отправленные в комнаты для собраний, будут автоматически приниматься, если комната доступна, но есть много старых запросов (особенно повторяющихся встреч), которые были отправлены до этого изменения, которые помечено как предварительное. Это проблема, потому что, когда новый запрос отправляется в течение времени, отмеченного как предварительное, он принимает запрос, что приводит к некоторым конфликтам.

Я немного опоздал на вечеринку; Я полагаю, что вы, вероятно, уже прошли эту проблему, но я только что прочитал этот вопрос сегодня и подумал, что это будет забавное упражнение, поэтому вот ответ на ваш вопрос. Эта часть Powershell будет входить в почтовый ящик с помощью клиента Outlook, проходить через папку «Входящие» и автоматически принимать любые приглашения на собрания. Очевидно, вы можете настроить код по своему вкусу (например, войти в другой почтовый ящик), но это определенно поможет вам начать, если вы все еще заинтересованы:

[Reflection.Assembly]::LoadWithPartialname("Microsoft.Office.Interop.Outlook") | Out-Null
$Folders = "Microsoft.Office.Interop.Outlook.OlDefaultFolders" -As [Type]
$Outlook = New-Object -ComObject Outlook.Application
$Namespace = $Outlook.GetNameSpace("MAPI")
$Inbox = $Namespace.getDefaultFolder($Folders::olFolderInbox)
ForEach ($_ In $Inbox.Items)
{
    If ($_.MessageClass -eq "IPM.Schedule.Meeting.Request") 
    {
        $AppointmentItem = $_.GetAssociatedAppointment($true)       
        $Response = $AppointmentItem.Respond(3,$True,$False)
        $Response.Send()
    }
}

Какую версию обмена вы используете? В Exchange 2007 есть инструмент под названием Calendar Concierge.

Ex2010 имеет агента автоматического принятия.

То, что вы запрашиваете, уже встроено в Exchange

Просто пролистав все команды exchange cmd-let, я могу сказать, что не видел ничего, что даже касается встреч. Боюсь, вам придется писать его из кода .NET или обрабатывать вручную.