Exchange一覧

NO IMAGE

Export-TransportRuleCollection コマンドの中身を見る

トランスポート ルール関連のコマンドとして Export-TransportRuleCollection コマンドと Import-TransportRuleCollection コマンドがあります。 基本的にこれらはその名前の通りトランスポート ルールのエクスポートとインポートを行うためのコマンドであり、設定内容を取得したり確認したりするためのものではありません。 設定内容を取得するには Get-TransportRule コマンドを使用するべきです。 ですが Export-TransportRuleCollection コマンドの出力内容としては XML でラップされた New-...

NO IMAGE

Exchange 管理シェルとリモート PowerShell のデータ型の違い

Exchange 管理シェルとリモート PowerShell では、データ型が異なる場合があります。 例えばトランスポート ルールで承認者が設定されている場合は ModerateMessageByUser で確認できます。 Exchange 管理シェルでは、以下の通り System.Array クラスを継承している RecipientIdParameter 型の配列です。 一方、リモート PowerShell では以下の通り ArrayList 型です。 この型の違いが、要素数を取得する際に影響します。 RecipientIdParameter 型の配列では Length プロパ...

NO IMAGE

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

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

NO IMAGE

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

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

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

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: 簡単に使い方を紹介して...

NO IMAGE

Get-MailboxStatistics コマンドの出力にエイリアスを追加する

Get-MailboxStatistics コマンドを使用するとメールボックスのサイズなどの使用状況を取得することができますが、出力結果にメールボックスのエイリアスが含まれていません。それらしいものは DisplayName くらいです。ですが CSV などに出力するときには一意な値であるエイリアスがあったほうがそのあとが何かと便利です。 そんな時にどうするかというと、以下のようにして一旦メールボックスの情報を変数に入れておき、後から Select コマンドの Expression を使用して出力にエイリアスを追加します。 はじめにパイプを重ねてエラーにならないように処理対...

NO IMAGE

EwsAllowList / EwsBlockList の挙動

オンプレミスでもオンラインでも、EWS アプリケーションの接続を制限したいときは Set-CasMailbox コマンドで設定することができます。EWS については比較的細かく設定することができるようになっており、EWS アプリケーションが使用するユーザー エージェントを許可リストもしくはブロックリストに登録して使用できるようになっています。 その時に使用するのが EwsAllowList / EwsBlockList ですが、ちょっと困った挙動があります。EwsAllowList / EwsBlockList に登録する文字列は大文字小文字を区別しません。そのため、例えば「MyApp*...

NO IMAGE

Get-Mailbox コマンドの結果をパイプラインで受け取って予定表フォルダーのアクセス権を設定する

Get-Mailbox コマンドの結果をパイプラインで受け取り、予定表フォルダーのアクセス権を設定するスクリプトを書いてみました。なぜかというと、かねてから面倒だなと感じることがあったためです。 Get-Mailbox コマンドの結果を Set-MailboxFolderPermission コマンドや Add-MailboxFolderPermission コマンドにパイプラインで渡せないそのため、一括でアクセス権を付与するようなことが難しいまだアクセス権を持たないユーザーに Set-MailboxFolderPermissionコマンドで権限を与えようとするとエラーになる ま...