Exchange管理シェルのコードのハイライトはイマイチ、というか未対応だね。仕方ないか。
2012年2月28日火曜日
PowerShellでExchange Serverのユーザメールボックスのサイズを調べる
Posted on 2/28/2012 by dsp74118 with No comments
Exchange Serverのメールボックスのサイズを調べるには、Exchange管理シェルのGet-MailboxStatistics の TotalItemSize プロパティを使う。
こいつを使う機会があったのだが、なんか動きがおかしかったのでその記録と、備忘のためのメモとしてこのエントリをポストしておく。
Get-MailboxStatisticsには引数-Identityがあるので、これにユーザのDNを与えれば結果が得られそうだが、私の手元の環境ではなんだかよくわからないがエラーになってしまった。
Exchangeの環境をいくつも持ってるわけではないので、この環境固有の問題なのか、引数の与え方が悪いのか、世間的に常識なのかは分からなかった。
引数-Serverを指定するとどうにかうまく動いたので、サーバ上の全ユーザの情報を取り出してから、where-objectで任意のユーザの情報を抽出することとした。
Get-MailboxStatistics | Get-Member をするとMailBoxGuidってのがいたので、Get-Mailboxで目的のユーザのメールボックスのGUIDを調べて突き合わせれば目的は達成できそう。
ちなみに今回はcustomAttributeN(Nは1~15)でのユーザ抽出が目的だったので、上のコードで事足りてしまった。
こいつを使う機会があったのだが、なんか動きがおかしかったのでその記録と、備忘のためのメモとしてこのエントリをポストしておく。
まずは基本編
特定のユーザのメールボックスサイズを調べるとしよう。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)でのユーザ抽出が目的だったので、上のコードで事足りてしまった。
Hyper-Vマネージャで「既に他の仮想ネットワークにバインドされているため、'(NIC名)' にバインドできません」
Posted on 2/28/2012 by dsp74118 with No comments
事の発端
某所のHyper-Vホストマシンで、なぜこのようなオペミスが起きたのかはさておき(俺じゃないよ!)、復旧の時少しハマったのでメモ。
デバイスマネージャで
次に、Hyper-Vの仮想ネットワークの設定が消えているので再投入を行った。
ところが、仮想ネットワーク マネージャで仮想ネットワークを作成する際に、接続の種類を「外部」にし、当該
解決策
新しい仮想ネットワークの変更を適用中にエラーが発生しました の巻 - デザイン事務所のプログラマーが書くブログ こちらを参考にさせていただいた。ローカル エリア接続のプロパティで一度「Microsoft 仮想ネットワーク スイッチ プロトコル」を外し、再度Hyper-Vマネージャで仮想ネットワークの設定をすると解消。
なお、その後ローカル エリア接続のプロパティを見ると、「Microsoft 仮想ネットワーク スイッチ プロトコル」にチェックが自動的についている。
解決したからよいが、一体なんなんだこれ。
「ローカル エリア接続のプロパティ」のチェックボックスをCLIで変更できない
Posted on 2/28/2012 by dsp74118 with No comments
みんなおなじみ、Windows の「ローカル エリア接続のプロパティ」。
このダイアログには
マシン全体でIPv6の有効化/無効化、IPv4 の有効化/無効化はできるが、個別のNIC 単位で設定するには、GUIを使うしかないのだ。
じゃあ、Server Coreだったらどうすんのか?
なんと、がんばってレジストリをいじくり回す以外に設定変更手段がない。
ソースは How to Disable IPv6 in Windows 2008 Full and Core editions - ENIAC KB←この辺。
Microsoft、正気か。
※もしServer Coreでの容易な設定変更方法をご存知の方がいらっしゃったら是非ご教授願いたい。
このダイアログには
- Microsoft ネットワーク用ファイルとプリンター共有
- インターネット プロトコル バージョン 6 (TCP/IPv6)
- インターネット プロトコル バージョン 4 (TCP/IPv4)
マシン全体でIPv6の有効化/無効化、
じゃあ、Server Coreだったらどうすんのか?
なんと、がんばってレジストリをいじくり回す以外に設定変更手段がない。
ソースは How to Disable IPv6 in Windows 2008 Full and Core editions - ENIAC KB←この辺。
Microsoft、正気か。
※もしServer Coreでの容易な設定変更方法をご存知の方がいらっしゃったら是非ご教授願いたい。
登録:
投稿 (Atom)