2011年9月13日火曜日

◆ソートのカスタマイズ

ActiveDirectoryからユーザー情報を取ってきて表示する際に独自の並び順で並べたいことがある。

例えば、役職などでは基本的に偉い順で並べたいのだが、単純に日本語で登録している場合は意図したとおりには並ばない。

幸い、Sortコマンドレットはソートプロパティに集計プロパティが指定できるのでそれを使うとこんな感じでカスタマイズが可能だ。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016

$dmAUsers = Get-QADGroupMember -Identity "Domain users" -Service "A.hoge.co.jp"
$dmBUsers = Get-QADGroupMember -Identity "Domain users" -Service "B.hoge.co.jp"

$dmAUsers + $dmBUsers   |
 
 
sort domain,department,
     @{expression=
{
     
switch ($_.
title){
       
"本部長"{1;break
}
       
"部長"{2;break
}
       
"副部長"{3;break
}
       
"主任"{4;break
}
       
"係員"{5;break
}
       
default{6;break
}
      }
    }} 
|
    select domain,department,title,name,email,samaccountname
<!--EndFragment

他ドメインの情報も必要だったのでPowerQuestの拡張コマンドを使ってユーザーを取得している。

ソートコマンドレットで並べたい順番に数字に置き換えてあげれば独自の並び順を実現できる。

1 件のコメント:

  1. Very energetic blog, I liked that bit. Will there be a part 2?


    Feel free to surf to my homepage - Sessel mit Aufstehhilfe [http://marilynjtourgds.Tblog.Com]

    返信削除