2011-11-15 13 views
1

$users = Get-QADUser -searchroot 'domain.net/OU1/OU2/Users'で取得したユーザーオブジェクトの配列を、 'AccountIsExpired'プロパティに基づいて2つの配列に分割しようとしています。Powershellユーザーオブジェクトの配列をプロパティに基づいて2つの配列に分割する

私は$users = $users | where {!($_.AccountIsExpired)}を行うことができますが、それは私のユーザーの一部に過ぎません。ただし、これによって一部のユーザーオブジェクトが除外されます。

は、私は2つのアレイ($include, $exclude)に$usersを分割するためにこのコードをビルドする:別に二番目の配列の作成から、私は、コードのこれらの2つのビットの間の差が表示されていない

[Object[]]$include = @(); 
[Object[]]$exclude = @(); 
foreach ($user in $users) { 
    if (!($_.AccountIsExpired)) { 
     $include += $user; 
    } else { 
     $exclude += $user; 
    } 
} 
$users = $include; 

...

+0

質問は何のようなもの? – JNK

+0

さて、ブラウザのウィンドウであなたのコードを見てみると、あなたの問題を解決するために必要なことはすべてあります。- ここには動作するコードがあります: [Object]] $ include = @ [オブジェクト[]] $ exclude = @(); foreach($ user in $ users){ if(!($ user.AccountIsExpired)){#は前のwhereフィルタから$ _をコピーしました... $ include + = $ user; } else { $ exclude + = $ user; } } $ users = $ include; $ exclude; – Neffets

+0

申し訳ありませんが、とにかくありがとうございます! – Neffets

答えて

5

グループオブジェクトの使用はどうですか?

$groups=$users | group-object AccountIsExpired

+0

+1私は同じことを約提案していた:) –

+0

はい!それは非常に良く見える、ちょうどコマンドラインでそれを試して、私のスクリプトでも動作するはずです...あとでそれを試してみましょう。 – Neffets

+0

charmeのように動作します。 ありがとうございました! – Neffets

関連する問題