こいつを使う機会があったのだが、なんか動きがおかしかったのでその記録と、備忘のためのメモとしてこのエントリをポストしておく。
まずは基本編
特定のユーザのメールボックスサイズを調べるとしよう。Get-MailboxStatisticsには引数-Identityがあるので、これにユーザのDNを与えれば結果が得られそうだが、私の手元の環境ではなんだかよくわからないがエラーになってしまった。
Exchangeの環境をいくつも持ってるわけではないので、この環境固有の問題なのか、引数の与え方が悪いのか、世間的に常識なのかは分からなかった。
引数-Serverを指定するとどうにかうまく動いたので、サーバ上の全ユーザの情報を取り出してから、where-objectで任意のユーザの情報を抽出することとした。
Get-MailboxStatistics | Get-Member をするとMailBoxGuidってのがいたので、Get-Mailboxで目的のユーザのメールボックスのGUIDを調べて突き合わせれば目的は達成できそう。
$allstats = Get-MailboxStatistics -Server <servername> $name = Get-Mailbox -Filter { <filterstring> } $allstats | ` Where-Object { $_.MailBoxGuid -eq $name.ExchangeGuid } | ` fl TotalItemSizeという感じ。
応用編
filterstringで複数のユーザを引っ掛けた場合は、foreachでぐるぐるまわしてあげたらいい。$allstats = Get-MailboxStatistics -Server <servername> $names = Get-Mailbox -Filter { <filterstring> } foreach($name in $names) { $name.SamAccountName $allstats | ` Where-Object { $_.MailBoxGuid -eq $name.ExchangeGuid } |` fl TotalItemSize }Get-Mailboxのフィルタ条件は腐っていてイマイチ使い物にならないので、実際の利用シーンでは、さらにGet-ADUserなどと組み合わせる必要があると思われる。
ちなみに今回はcustomAttributeN(Nは1~15)でのユーザ抽出が目的だったので、上のコードで事足りてしまった。
0 コメント:
コメントを投稿