PowerShell将多个属性分组

时间:2014-09-17 00:38:38

标签: powershell grouping

我试图弄清楚如何使用PowerShell实现以下目标。

我有一个包含以下标题的服务器列表:服务器,站点,域

我想根据网站和域创建多组服务器。但我希望每个网站中每个网站只有一台服务器。

每个域可能有多个站点。因此,每个集合可能包含每个域的每个站点的单个服务器。下一组将是相同的等等。

这个想法是对服务器集做一些工作。

示例:

Server1.domain1.com,Site1,Domain1 
Server2.domain1.com,Site1,Domain1
Server3.domain1.com,Site2,Domain1   
Server1.domain2.com,Site1,Domain2
Server2.domain2.com,Site2,Domain2
Server3.domain2.com,Site3,Domain2
Server1.domain3.com,Site1,Domain3
Server2.domain3.com,Site2,Domain3
Server3.domain3.com,Site3,Domain3

这些集合将是:

Set1: Server1.domain1.com,Server3.domain1.com,Server1.domain2.com,Server1.domain3.com,Server3.domain2.com

Set2: Server2.domain1.com,Server2.domain2.com,Server2.domain3.com

Set3: Server3.domain3.com

1 个答案:

答案 0 :(得分:0)

没关系,得到它: - )

$result = @()
$i = 0 

while(($serverlist|measure-object).count -gt 0)
{
    $templist = $serverlist|group-object Site,forest|%{$_.Group|select -first 1}|select -ExpandProperty Server
    $serverlist=$serverlist|?{$templist -notcontains $_.server}
    $tempObj = New-Object PSObject -Property @{"Set" = $i; "Servers"=$templist}
    $result+=$tempObj
    $i++
}