Exchange Online一覧

NO IMAGE

Microsoft Graph の getSchedule

Microsoft Graph の getSchedule は、空き時間情報を取得する API です。Outlook のスケジュール アシスタントのように、他人の予定の詳細ではなく空いているかどうかを取得します。基本的なことは Get free/busy schedule of users and resources や calendar: getSchedule を参照してください。 空き時間情報にも何段階かあります。どこまでの情報が取得できるのかは、参照先ユーザーの予定表に対してどこまでの権限を持っているのかによって異なります。いくつかのパターンで見ていきましょう。 まずはテ...

NO IMAGE

Exchange Online の全ユーザーのメールボックスを取得する

Exchange Online では、以下のような全ユーザーを取得するコマンドが失敗するという話をよく聞きます。 Get-Mailbox -ResultSize Unlimited これは割と有名な話で、特に大規模な環境でユーザー数が多いと失敗します。データ量が多くなることが問題の 1 つなので、対策としては、例えば以下のブログでは Invoke-Command を使ってサーバー サイドで実行して結果だけを受け取る方法を紹介しています。 膨大な数の Office 365 ユーザーへの PowerShell コマンドレットの実行 Invoke-Command -sess...

NO IMAGE

Office 365 Reporting Web サービスの試し方

Office 365 Reporting Web Service を簡単に試す方法はありませんが、PowerShell を使用することで比較的簡単に動作を確認できます。紹介するのはメッセージ追跡ログの取得方法のみですが、同じ要領で他のレポートも取得できます。 PowerShell で試す Windows PowerShell を起動します。以下のようにコマンドを実行します。認証ダイアログが表示されたら Office 365 の管理者の資格情報を入力してください。ここでは検索条件として差出人のメール アドレスを指定しているので、適宜変更してください。 $Credential ...

NO IMAGE

Exchange Web Service (EWS) の試し方

Exchange Web Service (EWS) を気軽に試す方法はありませんが、EWSEditor を使用して操作を行い、通信を Fiddler で確認するとどのような通信を行っているのかが確認できます。そのため、ここでは EWSEditor を使用して Exchange Online の EWS に接続する方法を紹介します。実際に EWS を使用するアプリケーションを開発する場合は、これらの通信を EWS Managed API を使用しながら (もちろん使用しないことも可能) 実装することになります。なお Exchange Online では EWS よりも Microsoft G...

NO IMAGE

Outlook REST API の試し方

Outlook REST API を試すには Outlook Sandbox を使用するのが簡単です。ですが自分で用意した Client ID を使用したり、アプリケーションの権限を使用したりすることはできません。そのため、ここでは Office365APIEditor を使用して Outlook REST API の動作を検証する方法を紹介します。紹介するのはメールの取得方法のみですが、同じ要領で他の権限を使用して様々な情報にアクセスができます。Office365APIEditor の通信を Fiddler で取得すれば、どのような通信が行われているのか確認することができます。 実際に O...

NO IMAGE

Office 365 Reporting web service の MessageTraceDetail をローカライズする

リファレンスには以下のように書いてありますが、きちんと Accept-Language ヘッダーをつけてあげると MessageTraceDetail のレスポンスはローカライズされます。 Explicitly set the Accept-Language HTTP request header. Currently there is nothing localized that comes through the Reporting web service, but that can change, and if your customers are using a differe...

Exchange Online の PowerShell で警告出力を取得する方法

Exchange Online の PowerShell では以下のように警告が出力されることがあります。 この警告の内容をスクリプトで取得するには、コマンド自体を Invoke-Command で実行して、WarningVariable で取得します。以下のようにします。 $warn = "" Invoke-Command -Command {Get-Mailbox -ResultSize 1} -Session:(Get-PSSession) -WarningVariable warn こうすると、WarningVariable に指定した変数を参照することで警...

NO IMAGE

Office 365 で利用可能なメッセージング関連 API について

Office 365 の一部である Exchange Online ではメールや予定表など様々な機能がありますが、これらの各ユーザーのメールボックス上の情報にプログラムからアクセスするためにいくつかの API が用意されています。 様々なアプローチがあるため API も多数ありますが、ここでは EWS / Office 365 API (Outlook REST API) / Microsoft Graph にフォーカスを当てて説明します。 EWS EWS (Exchange Web Services) は、もともとオンプレミスの Exchange 2007 以降で導入された W...

代理人の設定や非公開の予定を表示する権限を PowerShell で確認する方法

いままでは代理人の設定や非公開の予定を表示するかどうかについては、Outlook や EWS でないと確認ができませんでした。これが Exchange Online の PowerShell でできるように、しれっと機能が強化されています。ただし予定表フォルダー限定です。 例えば EXO の OWA で以下のように代理人と非公開の予定を表示する設定を行ったとします。 そして以下のようにコマンドを実行します。ユーザー名やフォルダー名は適宜読み替えてください。 すると以下のように SharingPermissionFlags に Delegate と CanVie...

Remote PowerShell コマンドの既定の出力内容

2018/08/01 Update 2018 年 5 月ごろより順次 Get-Mailbox コマンドの既定の出力が Name, Alias, Database, ProhibitSendQuota, ExternalDirectoryObjectId に変更されています。 Exchange Online の PowerShell に接続して Get-Mailbox コマンドを実行すると、既定で Name / Alias / ServerName / ProhibitSendQuota の 4 つが出力されているはずです。 Get-Mailbox コマンドの結果を fl する...