2014-09-17 4 views
0

J'essaie de comprendre comment utiliser ce qui suit en utilisant PowerShell.PowerShell regroupant plusieurs propriétés

J'ai une liste des serveurs avec les en-têtes suivants: serveur, site, domaine

Je veux créer plusieurs ensembles de serveurs regroupés en fonction du site et le domaine. Mais je voudrais avoir seulement 1 serveur par site et par domaine dans un ensemble.

Chaque domaine peut avoir plusieurs sites. Ainsi, chaque ensemble pourrait potentiellement contenir un seul serveur de chaque site pour chaque domaine. l'ensemble suivant serait le même et ainsi de suite.

L'idée est alors de travailler un peu contre l'ensemble des serveurs.

Exemple:

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 

Les jeux seraient:

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 

Répondre

0

de Nevermind, il a obtenu :-)

$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++ 
} 
Questions connexes