web-dev-qa-db-ja.com

Exchangeメールボックスで会議出席依頼を検索して受け入れるPowerShellスクリプト

メールボックス(特に会議室用)に入るPowerShellスクリプトを作成し、すべての会議出席依頼を見つけて受け入れることは可能ですか?

交換環境に新しいメカニズムを実装して、会議室に送信されたリクエストが空いている場合に自動的に受け入れられるようにしましたが、この変更の前に送信された古いリクエスト(特に定期的な会議)がたくさんあります。暫定としてマークされています。これは問題です。暫定的なものとしてマークされた時間に新しいリクエストが送信されると、リクエストを受け入れるため、競合が発生する可能性があります。

5
Evan M.

私はパーティーに少し遅れています。おそらくもうこの問題を過ぎていると思いますが、今日この質問を読んで、楽しい練習になると思ったので、ここにあなたの質問に対する答えがあります。この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()
    }
}
4
Ryan Ries

どのバージョンのExchangeを実行していますか? Exchange 2007には、カレンダーコンシェルジュと呼ばれるツールがあります

Ex2010には自動承認エージェントがあります。

あなたが要求しているものはすでにExchangeに焼き付けられています

0

すべての交換コマンドレットをざっと見ただけで、予定にさえ触れるものは何も見られなかったと言えます。 .NETコードから作成するか、手作業で作成する必要があります。

0
sysadmin1138