Exchangeのユーザー(っていうかメールボックス)に「CustomAttribute##」という
なんか自由に使っていいよ的なプロパティがあるんですけども
これになんか入れておいて、Powershellでフィルタして一覧出したい、一括処理したい、そんな感じで使いたい
と考えまして、いろいろやってるんですけども、うまくいかないんですよね。
似たようなことを考えている方は世界中にいらっしゃるようで、こんな感じで回答されているわけです。
social.technet.microsoft.com
Get-MailBox -Filter "CustomAttribute1 -eq '出向者'"
これは、CustomAttribute1に「出向者」と入っているデータのみ返ってきます。
正常です。期待通りです。
スクリプト化するにあたり、比較する文言を変数化します。
$AttributeKey = '出向者' Get-MailBox -Filter "CustomAttribute1 -eq $AttributeKey"
として小一時間悩みました。ダメな例です。
CustomAttribute1に何も入ってないメールボックスだけ返ってきます。期待の逆です。
正解は
$AttributeKey = '出向者' Get-MailBox -Filter "CustomAttribute1 -eq '${AttributeKey}'"
と変数にしたキーをかこってやる必要があるようです。
どうもFilter構文の中では変数は展開してくれないようで、
$Nullとして比較する、みたいな動きだったみたいです。
PowerShellはこのあたりややこしい世界ですね。cmdみたいにはいかないです。