2011年9月13日火曜日

◆ActiveDirectory、無効のアカウントをフィルターする

Search-ADAccountコマンドレットのAccountDisabledパラメータを使えば無効でないアカウントを取得することは可能だが、既に取得済みのユーザーに対してフィルターしたいこともある。

有効、無効を判定する属性はuserAccountControl属性として以下のように保持しているようだ。
image

最下位2ビット目がそれっぽいのでフィルターすると以下のようになる。

001
002
003

Get-ADGroupMember "Domain Users"| 
Get-ADUser -prop name,userAccountControl | 
?{!(($_.userAccountControl -band 0x00002) -eq 0x00002)}

ちなみに、PowerShell: ◆ActiveDirectoryグループごとのメンバー一覧を表示する2で使ったPowerQuestの拡張コマンドを使うと以下のように簡単にフィルターできる。

001
Get-QADGroupMember "Domain Users"| ?{!$_.AccountIsDisabled}

ただし、拡張コマンドは全般的に機能が豊富な分若干重い感じがするのでケースバイケースで使い分けが必要かもしれない。

--

あれ、単純にEnabledプロパティを使えばよいだけ?(汗)

0 件のコメント:

コメントを投稿