2016-07-06 36 views
0

我试图让我的大脑围绕着某个东西并且处于爆炸的边缘。 我有一个数据列表用户名和虚拟机的列表。PowerShell/CLI:使用多个阵列的“Foreach”循环

例如:

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

我需要整理用户数据,所以我可以给他们发邮件列表。如果我通过电子邮件发送电子邮件,将邮件bob发送3次,但我需要使用3个服务器名称发送电子邮件一次。我假设我需要将数据放入一个多维数组并循环,但不知道从哪里开始。

+2

'$ data |组用户名| %{do something}' – PetSerAl

回答

2

我没有完全理解这个问题,但我确定你正在寻找GROUP cmdlet。 管的集合,并指定由想要什么属性组的东西,然后所有的元素都可以作为一组属性

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 

或者,您可以使用-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循环通过名称 –