2017-09-27 25 views
1

私の目標は、3つの別々のADグループのグループメンバーを引き出し、配列内のフィールドの名前をグループ自体の名前に変更しながら$ _。最後に、Out-GridViewを使用して、一部のユーザーが誰がどのグループにいるかを確認できるようにしたいと考えています。foreachループ内の変数で名前を変更する

これは私が現在持っているもので、何らかの理由で動作しますが、変数の最初のエントリを実行するだけです。

$groups = "explore","user", "dist" 
$report = foreach ($group in $groups) 
{Get-ADGroupMember $group | Select @{Name="$group";Expression= 
{$_.name}}} 
$report | Out-GridView 

なぜこれが最初のエントリで停止していますか?私はここで何が欠けていますか?また、$ report = @()として配列$を作成して$ report + =をループに入れようとしました。どちらもうまくいかなかった。私は何か本当にばかなことを逃しているように感じる。どんな助けもありがとうございます。

もう一度最後に、グリッドビューがポップアップ表示され、それぞれ3つの列にグループ名とメンバーが表示されます。助けてくれてありがとう!

例所望の出力:

explore  user  dist 
user1  user4  user6 
user2  user3  user7 
user4  user7 

私は、グループメンバーを引っ張る名を選択し、名前/発現配列にそれをダンプすることによって一つのグループでこれを行うことができます。

1つのアウトグリッドビューで3つすべてのことがわかりにくいことがわかります。

+0

興味深いことに、同じプロパティを持つオブジェクトの最初のセットが表示されているようです。 '$ report'をコンソールに書くと同様の挙動を示します。同じ' explore'プロパティを持つオブジェクトの束が表示され、次に他のオブジェクトを表す空白行が表示されます。一方、 '$ report | Format-List * 'はすべてのオブジェクトを出力します。 –

+0

私はそれを実行すると、エントリのうちの1つだけの出力が得られ、それはそれらのエントリのどれかが可変であるように見えます。私は非常に混乱しています。 – J235711

答えて

0

これを試すことができます。

$groups = "explore","user", "dist" 
$report = foreach($group in $groups) { 
    Get-ADGroupMember $group | % { 
     New-Object -TypeName psobject -Property (@{'Group'=$group; 'User'=$_.name}) 
    } 
} 

$report | Out-GridView 

あなただけのオブジェクトのプロパティに追加し、追加の列を追加する必要がある場合。


EDIT

私が何をやりたいが読み取り可能に実現可能であるとは思いません。 gridviewは、CSVまたはSQL DBテーブルと同じ形式でデータを表示するように設計されています。オブジェクトのプロパティを示す列と、単一のオブジェクトを示す行があります。必要な形式でデータを表示する唯一の方法は、ある列にデータがあり、他の列に空白がある場合にギャップがあることです。

このコードは、あなたが望むものに近いものですが、グリッドビューに正しく表示されません。

$groups = "explore","user", "dist" 
$report = New-Object -TypeName psobject 

$groups | % { 
    $report | Add-Member -MemberType NoteProperty -Name $_ -Value @() 
} 

foreach($group in $groups) { 
    Get-ADGroupMember $group | % { 
     $report.($group) += $_.Name 
    } 
} 

$report 
+0

これは近いですが、3つの列があり、それぞれにグループが入っている列の代わりにグループの名前のヘッダーが付いていることを期待していました。 – J235711

+0

@ J235711探している出力を例として提供できますか? –

+0

@AlexSarafian私が探しているのは、私が実現するのが難しいと思いますが、元のメッセージに追加したものです。 トップクリックで並べ替えることができるように、各列名はメンバーが引き出されているグループを表します。 – J235711

関連する問題