Exchange 2010を使用しています。職場のすべてのユーザーから30日間の送信済みメールと受信済みメールの合計のリストを取得したいと思います。リストには、すべてのユーザーの名前と、送信および受信した電子メールの合計が含まれている必要があります。
以下のサンプルコードを試してみましたが、これを無効に変更しようとしました。
Get-MessageTrackingLog -Recipients [email protected] -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "receive" | measure-object
Get-MessageTrackingLog -sender [email protected] -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "send" | measure-object
"デフォルトでは、メッセージ追跡ログファイルの最大保存期間は30日です" -メッセージ追跡ログのデフォルトを変更しない限り、そこから1年前のデータを取得することはほとんどありません(ただし、メッセージがほとんどないため、ログファイルあたり10 MBの制限に過去30日以上ヒットしていません。
この種のデータを保持する必要がある場合は、ログの最大経過時間/ディレクトリサイズの制限を のドキュメントに記載されているように変更してください 。
もう1つのポイントは、追跡ログにはユーザー情報が含まれず、送信者と受信者のみが含まれ、インフラストラクチャの実際のユーザーにマッピングされる場合とマッピングされない場合があります。
それ以外は、Get-MessageTrackingLog
の結果をgroup-object
にパイプしてグループ化およびカウントすることができます。送信者によるグループ化の場合、これはかなり簡単です。
Get-MessageTrackingLog -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” | group-object -Property Sender
Get-MessageTrackingLog
によって返される[受信者]フィールドは複数の値を持つため、受信者によるグループ化はより複雑です。つまり、複数の受信者を含めることができます。 Select-Object -ExpandProperty
を前に付けると、ここで役立ちます:
Get-MessageTrackingLog -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” | select-object -ExpandProperty Recipients | group-object
結果セットは次のようになります。
Count Name Group
----- ---- -----
44 [email protected] {[email protected], [email protected], ...}
11 [email protected] {[email protected], [email protected], ...}
36 some.address@foreigndo... {[email protected], some.address@for...}
[...]
(まだ)何を探しているのかわからない。質問のどこにいて、コメントがこれまでどの程度役に立ったかはわからないが、次のスクリプトは私を大いに助けてくれた。
http://gallery.technet.Microsoft.com/office/f2af711e-defd-476d-896e-8053aa964bc5