Exchange Online レポートでの作業

 

**概要:**Windows PowerShell を使用して Office 365 を管理する際に Windows PowerShell コマンドレット、スクリプト、およびバッチ プロセスを使用します。

自由に使用できるコマンドレットは約 500 あるため、この記事では、Windows PowerShell や Exchange Online を使用して行える内容についてはほとんど触れることはできません。しかし、ここでは、いくつかの便利なコマンドについて説明します。しばしば、管理者は、ユーザーがシステムを実際に使用しているかどうか追跡したいと考えます。たとえば、ここ 1 週間、1 か月、またはここしばらく自分の Outlook メールボックスを開いていないユーザーがいないかどうか知りたい場合があるかもしれません。Windows PowerShell はこうした種類のレポートに最適です。たとえば、次のコマンドは、2013 年 11 月 1 日以降に一度もログオンされていないすべてのメールボックスを返します。

Get-Mailbox | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt "11/1/2013"}

さらに、次のコマンドは、これまで一度もログオンされていないすべてのメールボックスを返します。

Get-Mailbox | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -eq $Null}

とても便利だと思われませんか?次に、自分のメールボックスに 10,000 を超えるアイテムが含まれるユーザーの一覧を取得する方法を示します。

Get-Mailbox | Get-MailboxStatistics | Where-Object {$_.ItemCount -gt 10000}

ご推察のとおり、今日でもできます。しかし、それは行いません。

詳細な説明は省略しますが、多くのコマンドレットの中から、レポート情報および統計を返すのに使用できるいくつかのコマンドレットを以下に示します。

先ほどお話ししたとおりです。素晴らしいの一言です。

注意

注意深く一覧を見てみると、Get-CsConferenceReport コマンドレットの存在に気付くかもしれません。このコマンドレット名の Get-Cs の部分は、これが Exchange Online コマンドレットではなく、Lync Online コマンドレットであることを示しています。本当にそうでしょうか?
これは、コマンドレットに対する見方によって変わってきます。このコマンドレット (それ以外の Get-Cs レポート用コマンドレットも同様) は、Lync Online に関する情報を返します。このコマンドレットは、Lync Online チームによって作成されたものです。ただし、Get-Cs レポート用コマンドレットでは、データを生成して返す場合に Exchange Online レポート用サービスが必要です。つまり、これらのコマンドレットを使用するには Exchange Online のサブスクリプションを持っている必要があります。Exchange Online のサブスクリプションを持っていない場合、レポート用サービスにアクセスすることはできません。そのため、これらのコマンドレットは、Lync Online モジュールではなく、Exchange モジュールに含まれます。Windows PowerShell を起動して Lync Online モジュールのみをロードすると、どの Get-Cs レポート用コマンドレットも表示されません。簡単に言うと、Lync Online レポートを生成するには Exchange モジュールが必要だということです。

では、レポート用コマンドレットを使用して、どんな種類のレポートを生成できるでしょうか。コマンドレット名に加えて、既に説明した例からもお分かりのように、答えは次のとおりです。考えうるどんな種類のレポートも生成可能です。では、既に紹介した便利なコマンドレットの 1 つに注目してみましょう。「Get-MailboxStatistics」。Get-MailboxStatistics は、ユーザーのメールボックスに関する詳細情報を返すように設計されています。既定では、Get-MailboxStatistics は 1 つのメールボックスに対して次のような情報を返します。

DisplayName    ItemCount    StorageLimitStatus    LastLogonTime
-----------    ---------    ------------------    -------------
Alex Darrow    29                                 10/8/2013 3:18:05 PM

お分かりのように、この単純なレポートにも、Alex のメールボックス内の合計アイテム数 (ItemCount) および最後に Alex がログオンした時刻 (LastLogonTime) といった、非常に役立つ情報が含まれています。

注意

良い質問:この情報はどうやって得られたのでしょうか。結局のところ、次の Windows PowerShell コマンドが実行されました。
Get-MailboxStatistics –Identity "alexd"

しかし、この情報の元となったさらに多くの情報があることは確かです。たとえば、Alex のメールボックス内のアイテムの合計サイズを知りたいと思うかもしれません。その場合は、次のコマンドを実行できます。

Get-MailboxStatistics -Identity "alexd" | Select-Object DisplayName, TotalItemSize

あるいは、Alex のメールボックス内の削除済みアイテムの数を知りたいと思うかもしれません。次のとおりです。

Get-MailboxStatistics -Identity "alexd" | Select-Object DisplayName, DeletedItemCount

または、両方とも知りたいと思うかもしれません。

Get-MailboxStatistics -Identity "alexd" | Select-Object DisplayName, TotalItemSize, DeletedItemCount

もうお分かりでしょう。Get-MailboxStatistics コマンドレットを使用して返すことができるすべてのプロパティ値を表示するには、次のようなコマンドを実行するだけです。

Get-MailboxStatistics -Identity "alexd" | Select-Object *

もちろん、一度に 1 つのメールボックスの統計情報しか参照できないわけではありません。すべてのメールボックスに関するレポート一覧情報が必要ですか?すぐに実行できます。

Get-Mailbox | Get-MailboxStatistics

このコマンドは次のような情報を返します。

DisplayName    ItemCount  StorageLimitStatus    LastLogonTime
-----------    ---------  ------------------    -------------
Alex Darrow     29                              10/8/2013 1:18:05 PM
Allie Bellew    3                               11/8/2013 9:18:21 PM
Anne Wallace    3                               10/21/2013 3:18:45 PM
Aziz Hassouneh  2                               10/18/2013 2:19:05 PM
Belinda Newman  21                              10/4/2013 3:19:26 PM
Bonnie Kearn    13                              10/8/2013 8:19:50 PM

Is that cool or what?

次の 2 つのオプションに限定されるわけでもありません。1 つのメールボックスに関する情報を返す、またはすべてのメールボックスに関する情報を返す。それらに代えて、メールボックスのサブセットの情報を返す、あらゆる種類の気の利いた小さな Windows PowerShell コマンドを作成することもできます。メールボックスの 3 つの情報だけが必要ですか?そうであれば、識別情報を Get-MailboxStatistics にパイプしてください。たとえば、

"Alex Darrow", "Allie Bellew", "Anne Wallace" | Get-MailboxStatistics

これにより、指定した 3 つのメールボックスだけのデータが返されます。

DisplayName    ItemCount  StorageLimitStatus    LastLogonTime
-----------    ---------  ------------------    -------------
Alex Darrow     29                              10/8/2013 1:18:05 PM
Allie Bellew    3                               11/8/2013 9:18:21 PM
Anne Wallace    3                               10/21/2013 3:18:45 PM

または、財務部門に属しているすべてのメールボックスについてのレポートを生成したいかもしれません。これは次のようなコマンドで実行できます。

Get-User -Filter '{Department -eq "Finance"}' | Get-MailboxStatistics

では、2013 年 10 月 31 日以降ログインしていない (つまり、最後のログオン時刻が [-lt] 10/31/2013 より前である) すべてのユーザーの一覧を返す次のコマンドはどうでしょうか。

Get-Mailbox | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt "11/1/2013"}

よくできています。

次へ: Exchange Online 管理者が使用可能なコマンドレットを判別する

参照

概念

Windows PowerShell を使用して Exchange Online を管理する