PowerShell pour obtenir les valeurs d'attribut à partir de XML avec plusieurs attributs

Le fichier XML suivant est un nœud d'Objet de la sortie de la commande Get-ClusterGroup exécuter à partir d'un 2008 R2 Cluster de Basculement avec PowerShell 2:

<?xml version="1.0"?>
<Objects>
  <Object>
    <Property Name="Cluster">Cluster1</Property>
    <Property Name="IsCoreGroup">False</Property>
    <Property Name="OwnerNode">Node1</Property>
    <Property Name="State">Offline</Property>
    <Property Name="Name">SAP PL1</Property>
    <Property Name="Description" />
    <Property Name="PersistentState">1</Property>
    <Property Name="FailoverThreshold">4294967295</Property>
    <Property Name="FailoverPeriod">6</Property>
    <Property Name="AutoFailbackType">1</Property>
    <Property Name="FailbackWindowStart">4294967295</Property>
    <Property Name="FailbackWindowEnd">4294967295</Property>
    <Property Name="Priority">1</Property>
    <Property Name="DefaultOwner">4294967295</Property>
    <Property Name="AntiAffinityClassNames" />
    <Property Name="Id">a5ff557f-c81a-43aa-bdb9-e09d0a1103df</Property>
  </Object>
</Objects>

Le dossier complet a plus de trois nœuds de support de semblable. Deux de ces nœuds ont la valeur "False" dans le "IsCoreGroup" attribut et les deux autres sont de "Vrais". Ce que j'essaie de faire est d'obtenir la valeur de la propriété "Name" et d'autres attributs de l'Objet nœuds qui ont la valeur "False" dans le "IsCoreGroup" attribut.

J'ai essayé un certain nombre de façons d'obtenir de cet attribut, mais ne peut pas comprendre comment faire un trou dans le frère attributs.

Voici ce que j'ai à ce jour:

[xml]$file = get-content C:\Admin\ClusterGroups.xml
$xmlProperties = $file.SelectNodes("/Objects/Object/Property")
Foreach ($xmlProperty in $xmlProperties) {
    $strName = ($xmlProperty | Where-Object {$_.Name -eq "IsCoreGroup" }).InnerXml
    If ($strName -eq "False")
    {
    Echo $xmlProperty
    }
}

Cela me donne la suivante:

Name                                      #text                                    
----                                      -----                                    
IsCoreGroup                               False      

Mais je ne peux pas comprendre comment obtenir le frère propriétés

J'ai essayé de sauvegarder un niveau avec:

[xml]$file = get-content C:\Admin\ClusterGroups.xml
$xmlObjects = $file.SelectNodes("/Objects/Object")
Foreach ($xmlObject in $xmlObjects) {
    $strCoreGroup = ($xmlObject | Where-Object {$_.Property.Name -eq "IsCoreGroup" }).InnerXml
    If ($strCoreGroup -eq "False")
    {
    Echo $xmlObject
    }
}

Mais ce n'est pas moi, n'importe où.

Toute aide est grandement appréciée!

InformationsquelleAutor user888818 | 2013-11-04