PowerShell で EWS Managed API 拡張コマンドレットを利用する

発行日: 2010 年 9 月

クラウドサービスとして提供されている Microsoft Exchange と通信したりAPI を実行したりするには XML Web サービスを使います。従来から Exchange Web サービスという SOAP プロトコルベースの API が用意されていますが、Microsoft Exchange Web Services (EWS) Managed API を使うことにより、Exchange と通信するアプリケーションの実装を簡略化するようになりました。これにより、メール、予定、タスクなどのアイテムの各種操作、アクセス権管理など、WebDAV や CDOEX で従来実行されていたタスクを XML Web サービスからリモートで簡単に実行することが可能です。また、EWS Managed API はアプリケーション開発だけではなく、Windows PowerShell からも呼び出すことが可能で、これにより IT 管理者が Exchange Online を管理するためのスクリプトを作成して実行することができます。

EWS Managed API をWindows PowerShell スクリプトから呼び出して利用するには、スクリプトを実行するコンピュータに Exchange Web Services Managed API、Microsoft Online Services 移行ツールや Windows PowerShell をインストールしておく必要があります。詳細は以下を参照してください。

Exchange Web Services Managed API の詳細については、MSDN の SDK (英語) をご覧ください。

EWS Managed API を Windows PowerShell から呼び出すには、最初に以下のコマンドを実行します。

$uri=[system.URI] "https://red003.mail.apac.microsoftonline.com/ews/exchange.asmx"
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\1.0\Microsoft.Exchange.WebServices.dll"

$adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $bposlogin,$password

[void][Reflection.Assembly]::LoadFile($dllpath)

$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1)
$service.Url = $uri
$service.Credentials = New-Object System.Net.NetworkCredential($bposlogin,$bpospwd,"")

$dllpath には API の DLL をインストールしたパスを指定します。$url は Exchange Web Services API の URL を指定します。組織が使っているデータセンターの場所により値を変更します。

アジア太平洋地域 (APAC) https://red003.mail.apac.microsoftonline.com/ews/exchange.asmx
ヨーロッパ、中東、アフリカ (EMEA) https://red002.mail.emea.microsoftonline.com/ews/exchange.asmx
北アメリカ https://red001.mail.microsoftonline.com/ews/exchange.asmx