以下 XML 文件是使用 PowerShell 2 从 2008 R2 故障转移群集运行的命令 Get-ClusterGroup 的输出的一个对象节点:
<?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>
完整文件还有三个与此类似的 Object 节点。其中两个节点在“IsCoreGroup”属性中的值为“False”,另外两个为“True”。我要做的是从“IsCoreGroup”属性中具有“False”值的对象节点获取“Name”属性和其他属性的值。
我尝试了多种方法来获取此属性,但无法弄清楚如何深入了解兄弟属性。
这是我到目前为止所拥有的:
[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
}
}
这给了我以下信息:
Name #text
---- -----
IsCoreGroup False
但我不知道如何获得兄弟属性
我尝试通过以下方式备份一个级别:
[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
}
}
但这并没有让我到任何地方。
任何帮助是极大的赞赏!