NO IMAGE

Exchange サーバーのバージョン番号と製品名を相互変換する

「この CU のバージョン番号はなんだったか?」や、逆に「このバージョン番号は CU いくつだ?」と思うことが多々あります。もちろん TechNet などにも記載がありますが、わざわざ表示して確認するのも少し面倒。 そこで Get-ExchangeBuildNumber を使用します。使い方は README に書いてある通り、簡単ですね。リポジトリの名前は Get-ExchangeBuildNumber ですが、製品名からバージョン番号を取得する Get-ExchangeBuildNumber と、バージョン番号から製品名を取得する Get-ExchangeProductName が含まれて...

NO IMAGE

Outlook や OWA の予定表のショートカットを EWS で取得する

Outlook や OWA で開いた他人の予定表は画面左側にリスト表示されますが、この情報を EWS で取得したいという話をよく聞きます。 正しい呼び方がわからないのでここでは説明の都合上「予定表のショートカット」と呼びますが、残念ながら EWS にはこの内容を取得する サポートされた API がありません。 それでも情報はメールボックスに保存されているので、情報を取得できないこともないです。 サポートされる API がない以上、今後実装が変わる可能性はありますが、まずはどのように情報が保存されているのかを確認する必要があります。 予定表のショートカットは、メールボックスのルートの中の...

NO IMAGE

インプレース保持の反映時間

Set-MailboxSearch コマンドの InPlaceHoldEnabled を変更すると、以下のように「保留中の設定が有効になるまで最大 60 分かかります。」と表示されます。 英語ではこの警告は「The hold setting may take up to 60 minutes to take effect.」なので翻訳が少しおかしいですが、それはさておき反映まで 60 分かかるようです。ではこの 60 分とは何の時間でしょうか。 答えは、Exchange サーバー内部のキャッシュが切れるまでの最大時間です。インプレース保持の設定はキャッシュされており、その保持時間が最大...

NO IMAGE

Graph API で Exchange Online のメールボックスを作成する

Graph API では Exchange Online のメールボックスの作成はできないと思われがちですが、ユーザーの作成とライセンスの割り当てを行うことができるので、結果としてメールボックスの作成を行うことができます。 Step 1. ユーザーの作成 まずはユーザーを作成します。ポイントとしては、この時に usageLocation を指定することです。この例では JP (日本) を指定しています。 HTTP request POST Request body { accountEnabled:true, displayName:"testUser05", mailNickname:...

NO IMAGE

EWS でメッセージ クラスを変更する

EWS でメッセージ クラス (ItemClass プロパティ) を変更して Update を行うと、一部を除いてたいていの場合は ObjectTypeChangedException が発生して失敗します。例えばこれは、IPM.Note を IPM.Post.MySubClass に変更をしようとしたときの EWS ログです。 2016-05-24T09:44:41.693Z,34817ede-9d8a-4b81-9b92-2d9c0e2cfe49,15,0,995,12,,Negotiate,True,Administrator@rykoma01.lab,rykoma01.lab,Exch...

NO IMAGE

Outlook.com と Exchange Online の統合

Outlook.com と Exchange Online の統合がどんどん進んでいるようです。 先日より Office 365 API でいわゆる v2 endpoint を使った開発ができるようになりました。これにより、開発者は接続先が Outlook.com なのか Office 365 なのかを区別せずに同じ認証方式を使用して同じリクエストを投げることができるようになりました。 ただしこれは Outlook.com 側がまだ対応を開始したばかりなので、対応していないアカウントに接続すると MailboxNotEnabledForRESTAPI などのエラーが発生します。メイ...

NO IMAGE

Office 365 API 入門 – Web アプリケーション編

Office 365 で用意されている Office 365 API を使用すると、例えばプログラムからメールボックスの内容を参照したり、メールを送信したりといったユーザーの操作を行うことができるようになります。Exchange 2007 から使用できる EWS のほうがより高度なことが実現でき、開発者の人口が多く情報が集まりやすいのは事実ですが、Office 365 API はいわゆる REST 通信となるので Windows や .NET 以外のプラットフォームの開発者から好まれるように思います。 Office 365 API のリファレンスは MSDN で公開されていますが、実際に...

Exchange Online の EWS に OAuth を使用して接続する

2018/06/24 最新の情報に合わせて書き直しました。 Exchange Online に EWS で接続する際、OAuth 認証を使用することができるので、手順をまとめてみました。今回は開発言語は C# を使用しています。また、Web アプリケーションではなくデスクトップ アプリケーションを想定しています。いくつか参考になる情報はインターネット上で見つかりますが、Azure も Exchange Online も常に変化しているので、普遍的な内容ではないのでご注意ください。 アプリケーションの登録 以下の URL にアクセスして、Azure Active Dir...

NO IMAGE

DAG 構成の特定のメールボックス サーバーでホストされているメールボックスを正確に取得する

DAG 構成の場合、Get-Mailbox コマンドの Server オプションでは正確な情報が取得できない場合があります。Get-MailboxDatabaseCopyStatus コマンドを組み合わせることで、正確な情報が取得できます。 まず、Get-Mailbox コマンドで Server オプションを使用すると、ユーザー オブジェクトの msExchHomeServerName 属性を基に一致するメールボックスが返されます。Get-Mailbox コマンドの結果に含まれる ServerName も msExchHomeServerName 属性の値です。しかし DAG 環境では、...

NO IMAGE

Exchange サーバーのビルド番号を取得するスクリプト

Exchange サーバーのビルド番号を取得するスクリプトを作成して GitHub で公開しました。こちらからアクセスできます。動作としては、以下の公開情報を基に作成した定義ファイルの中から、指定された製品バージョンのビルド番号を検索して返します。データは Azure 上に保存しています。新しい CU などが出たら更新していきたいと思っています。 TITLE: Exchange Server 更新プログラム: ビルド番号とリリース日 URL: TITLE: Exchange Server and Update Rollup Build Numbers URL: 簡単に使い方を紹介して...