Exchange Online の EWS に OAuth を使用して接続する
2020/11/25 更新 以前は Microsoft の公開情報に十分な手順が掲載されていなかったため、この記事に EWS 接続で OAuth を使用する方法を掲載していました。現在は以下のページが用意されているため、本記事の内容は削除しました。 Authenticate an EWS application by using OAuth
2020/11/25 更新 以前は Microsoft の公開情報に十分な手順が掲載されていなかったため、この記事に EWS 接続で OAuth を使用する方法を掲載していました。現在は以下のページが用意されているため、本記事の内容は削除しました。 Authenticate an EWS application by using OAuth
DAG 構成の場合、Get-Mailbox コマンドの Server オプションでは正確な情報が取得できない場合があります。Get-MailboxDatabaseCopyStatus コマンドを組み合わせることで、正確な情報が取得できます。 まず、Get-Mailbox コマンドで Server オプションを使用すると、ユーザー オブジェクトの msExchHomeServerName 属性を基に一致するメールボックスが返されます。Get-Mailbox コマンドの結果に含まれる ServerName も msExchHomeServerName 属性の値です。しかし DAG 環境では、...
Exchange サーバーのビルド番号を取得するスクリプトを作成して GitHub で公開しました。こちらからアクセスできます。動作としては、以下の公開情報を基に作成した定義ファイルの中から、指定された製品バージョンのビルド番号を検索して返します。データは Azure 上に保存しています。新しい CU などが出たら更新していきたいと思っています。 TITLE: Exchange Server 更新プログラム: ビルド番号とリリース日 URL: TITLE: Exchange Server and Update Rollup Build Numbers URL: 簡単に使い方を紹介して...
Get-MailboxStatistics コマンドを使用するとメールボックスのサイズなどの使用状況を取得することができますが、出力結果にメールボックスのエイリアスが含まれていません。それらしいものは DisplayName くらいです。ですが CSV などに出力するときには一意な値であるエイリアスがあったほうがそのあとが何かと便利です。 そんな時にどうするかというと、以下のようにして一旦メールボックスの情報を変数に入れておき、後から Select コマンドの Expression を使用して出力にエイリアスを追加します。 はじめにパイプを重ねてエラーにならないように処理対...
オンプレミスでもオンラインでも、EWS アプリケーションの接続を制限したいときは Set-CasMailbox コマンドで設定することができます。EWS については比較的細かく設定することができるようになっており、EWS アプリケーションが使用するユーザー エージェントを許可リストもしくはブロックリストに登録して使用できるようになっています。 その時に使用するのが EwsAllowList / EwsBlockList ですが、ちょっと困った挙動があります。EwsAllowList / EwsBlockList に登録する文字列は大文字小文字を区別しません。そのため、例えば「MyApp*...
例えば以下のようにハッシュ テーブルを作ったとき、CSV ファイルにエクスポートしたいとします。 パイプで Export-Csv に渡せばいいと思われますが、やってみれば分かる通りそれではきちんと出力されません。そこで、以下のようにします。 GetEnumerator() で型を変えて Select で整形してから、Export-Csv に渡します。Select は Key と Value を取得すればデータとしては問題ないですが、CSV にするときにヘッダーをあらかじめ指定しておいたほうがラクなので Select で指定してしまいます。「N」は「Name」の、「E」は「Expre...
.NET Framework でメールを送信するときは SmtpClient を使うことになると思いますが、プロパティなどで簡単にメールに電子署名をつけたり暗号化したりすることはできません。そのため、フォーラムやブログで議論されたり、3rd パーティ製品も販売されたりもしているようです。 先のフォーラムもブログも日本語を考慮していないようでしたので、日本語を扱えるように書いてみました。最後に全文を紹介しますが、実行は自己責任でお願いします。なるべく既存の SmtpClient を使用するため完ぺきではないですし、つぎはぎで書いており、例外処理もしていません。 まず初めに、日本語を扱...
Exchange 2016 がリリースされましたね。Exchange Team Blog でも Exchange Server 2016: Forged in the cloud. Now available on-premises. で紹介されています。 いろいろと見た目でわかる機能強化が目立つような気がしますが、基本的なアーキテクチャは Exchange 2013 と変わっていませんね。Exchange 2013 との共存も驚くほど簡単です。製品のビルド番号も 15.1 なので Exchange 2013 とメジャー番号は同じですし、そのためにインストール パスまで一緒です。CAS ...
Get-Mailbox コマンドの結果をパイプラインで受け取り、予定表フォルダーのアクセス権を設定するスクリプトを書いてみました。なぜかというと、かねてから面倒だなと感じることがあったためです。 Get-Mailbox コマンドの結果を Set-MailboxFolderPermission コマンドや Add-MailboxFolderPermission コマンドにパイプラインで渡せないそのため、一括でアクセス権を付与するようなことが難しいまだアクセス権を持たないユーザーに Set-MailboxFolderPermissionコマンドで権限を与えようとするとエラーになる ま...
メールのテストをするときなど、大量にメールを送りたい時がありますよね。そんな時は PowerShell を使って SmtpClient でささっとメールを送れば解決します。 でも、差出人とか件名が重複しないようにしたい時ってありますよね。そんな時の PowerShell スクリプトを書いたので、備忘録的に載せておきます。 これを .ps1 ファイルとして保存しして実行したら、てきとうなメールが送信できます。基本的な SmtpClient の使い方は説明しませんが、宛先や SMTP サーバーは適宜変更が必要です。差出人が存在しないドメイン名になるので、ちゃんと受信してくれるか...