PowerShell一覧

Microsoft Graph PowerShell SDK Preview

Microsoft Graph PowerShell SDK が GA したので以下の記事を公開しています。Microsoft Graph PowerShell SDK の試し方本記事はプレビュー中の内容について記載したもので、GA バージョンには当てはまりません。 PowerShell 向けの Microsoft Graph のモジュールがプレビュー提供されています。PowerShell から Microsoft Graph を使用するためのラッパーのようなモジュールになっています。以前は PowerShell Gallery にも登録されていない状態でしたが、現時点では Power...

NO IMAGE

Windows PowerShell で MSAL を使って EWS 用のアクセス トークンを取得する

C# で MSAL (Microsoft.Identity.Client) を使って EWS 用のアクセス トークンを取得する方法は Authenticate an EWS application by using OAuth に記載されています。しかしながら PowerShell の場合については Docs に記載がありません。こちらのブログでは PowerShell の場合についての記載がありますが、ADAL も MSAL も使用しない実装になっています。「ライブラリを使用しなくても実装できることをわざわざライブラリを使用して実装するのは面倒」と考えることもできますが、ブログに記載の方法...

NO IMAGE

RobustCloudCommand Module の紹介

以前は Script だった Start-RobustCloudCommand.ps1 が、Module になってしかも MFA にも対応したということで、使い方を紹介します。 おさらい Exchange Online の PowerShell はスロットリングやセッションの不安定さなどの問題から、長時間大量のオブジェクトに対する処理を実行するのがものすごく苦手です。そんな時にセッションを管理しながら Exchange Online のコマンドを実行するのが Start-RobustCloudCommand.ps1 でした。 準備 はじめにモジュールのインストールを行...

NO IMAGE

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

Exchange Online PowerShell V2 Module の登場で、大量のオブジェクトでも通信が安定するようになりました。この記事の内容は初回投稿のまま残していますが、現在は Get-EXOMailbox コマンドを使用することで大量のメールボックスも取得しやすくなっています。 Exchange Online では、以下のような全ユーザーを取得するコマンドが失敗するという話をよく聞きます。 Get-Mailbox -ResultSize Unlimited これは割と有名な話で、特に大規模な環境でユーザー数が多いと失敗します。データ量が多くなることが問題の ...

NO IMAGE

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

Office 365 Reporting Web Service を簡単に試す方法はありませんが、PowerShell を使用することで比較的簡単に動作を確認できます。ここではメッセージ追跡ログの取得方法を紹介します。 なお公式ドキュメントは以下にありますが、十分にメンテナンスが行われていないのでご注意ください。Office 365 Reporting web service | Microsoft DocsMessageTrace report | Microsoft DocsMessageTraceDetail report | Microsoft Docs を使用してアク...

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 では以下のように警告が出力されることがあります。 この警告の内容をスクリプトで取得するには、各コマンドに用意されている WarningVariable パラメーターを使用します。 $Warn = "" Set-Mailbox ExoUser01 -WarningVariable Warn こうすると、WarningVariable に指定した変数を参照することで警告出力の内容を取得できます。 以下は補足です。以前は Exchange Online への接続が Remote Pow...

Format-List コマンドの結果をプロパティの名前でならべかえる

Get-Mailbox などのコマンドの実行結果を fl (Format-List) で出力すると各プロパティが表示されますが、もしかするとこれをアルファベット順で表示させたいという状況があるかもしれません。 こんな時はこちらのぺージを参考にするとよいでしょう。 ただしこの方法ではもともと表示されていた以下の情報が表示されません。 PSComputerName PSShowComputerName RunspaceId これらはリモート PowerShell 接続に関する内容のため、特に意識する必要はない情報ですが、もし必要ということであれば Get-Mem...

NO IMAGE

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

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

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

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