2016-07-06 7 views
0

私は何かを丸くして頭の爆発の寸前にしようとしています。 私はユーザー名と仮想マシンをリストしたデータのリストを持っています。例えばPowerShell/CLI:複数の配列を持つ "Foreach"ループ

username  servername 
bob.lazar  abc001 
bob.lazar  abc002 
peter.bob  ght004 
bob.lazar  abc006 

私はリストにそれらを電子メールで送信することができますように、ユーザーデータを照合する必要があります。私がループして電子メールでボブを3回メールすると、3つのサーバ名でボブにメールを送る必要があります。私は、データを多次元配列に入れてループスルーする必要があると仮定しますが、どこから始めるべきかはわかりません。

+2

'$ data |グループのユーザー名| %{do something} ' – PetSerAl

答えて

2

私はこの問題を完全に理解していませんでしたが、私はあなたがGROUPコマンドレットを探していると確信しています。 パイプそれにコレクションとすることで、グループの物事に何をしたいプロパティを指定し、すべての要素がまた

JPS> dir |group extension |? Name -eq ".txt" | % Group 


    Directory: C:\temp 


Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----   6/2/2016 8:23 PM   57930 foo.txt 
-a----  12/21/2015 8:00 PM   8265 ModuleSessions.ps1.t 
-a----  3/15/2016 6:26 PM    51 num.txt 
-a----   6/6/2015 6:55 PM   2390 t2.txt 

GROUPプロパティとして利用可能な、あなたのようにプロパティでハッシュテーブルを返すために-AsHashtableを使用することができますキー

JPS> (dir |group Extension -AsHashTable)[".txt"] 


    Directory: C:\temp 


Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----   6/2/2016 8:23 PM   57930 foo.txt 
-a----  12/21/2015 8:00 PM   8265 ModuleSessions.ps1.txt 
-a----  3/15/2016 6:26 PM    51 num.txt 
-a----   6/6/2015 6:55 PM   2390 t2.txt 

実験を行ってください。

+0

質問のユーザーにサーバー名の一覧をメールで送信する必要があります。私はADに対してユーザーを検索して電子メールアドレスを取得し、一致するすべてのサーバー名を電子メールで送信できます。 –

+0

私はグループを使用して、foreachを使って名前をループすることができます –

関連する問題