Script do PowerShell para encontrar solicitações de reunião na caixa de correio do Exchange e aceitá-las

5

É possível criar um script do PowerShell que vá para uma caixa de correio (especificamente para uma sala de reunião), encontre todas as solicitações de reunião e as aceite?

Implementamos um novo mecanismo em nosso ambiente de troca para que as solicitações enviadas para as salas de reunião sejam aceitas automaticamente se a sala estiver disponível, mas há muitas solicitações antigas (especialmente reuniões recorrentes) que foram enviadas antes desta mudança que são marcadas como tentativas. Isso é um problema porque quando uma nova solicitação é enviada por um tempo marcado como provisório, ela aceita a solicitação, o que está causando alguns conflitos.

    
por Evan M. 25.08.2011 / 20:24

3 respostas

3

Estou um pouco atrasado para a festa; Eu imagino que você provavelmente já tenha passado por essa questão, mas acabei de ler esta pergunta hoje e achei que seria um exercício divertido, então aqui está a resposta para sua pergunta. Esse bit do Powershell fará login em uma Caixa de Correio usando o cliente Outlook, passará pela Caixa de Entrada e aceitará automaticamente todos os convites para a reunião. Você pode, obviamente, ajustar o código para ser mais do seu agrado (como fazer login em uma caixa de correio diferente), mas isso definitivamente o ajudaria se você ainda estivesse interessado:

[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()
    }
}
    
por 13.12.2012 / 21:42
0

Tendo acabado de folhear todos os cmd-lets de troca, posso dizer que não vi nada que sequer toque em compromissos. Eu tenho medo que você tenha que escrevê-lo a partir do código .NET, ou passar manualmente.

    
por 25.08.2011 / 23:20
0

Qual versão do exchange você está executando? O Exchange 2007 tem uma ferramenta chamada Calendar Concierge

O Ex2010 tem o agente de aceitação automática.

O que você está solicitando já está pronto para o Exchange

    
por 17.09.2012 / 21:40