27
私は、テキストファイルにこのXML文書を持っている:PowershellでXMLを反復処理する方法は?
<?xml version="1.0"?>
<Objects>
<Object Type="System.Management.Automation.PSCustomObject">
<Property Name="DisplayName" Type="System.String">SQL Server (MSSQLSERVER)</Property>
<Property Name="ServiceState" Type="Microsoft.SqlServer.Management.Smo.Wmi.ServiceState">Running</Property>
</Object>
<Object Type="System.Management.Automation.PSCustomObject">
<Property Name="DisplayName" Type="System.String">SQL Server Agent (MSSQLSERVER)</Property>
<Property Name="ServiceState" Type="Microsoft.SqlServer.Management.Smo.Wmi.ServiceState">Stopped</Property>
</Object>
</Objects>
私は、各オブジェクトを反復処理し、DisplayName
とServiceState
を見つけたいです。どうすればいい?私はあらゆる種類の組み合わせを試してみて、それを解決するために苦労しています。
私は変数にXMLを取得するためにこれをやっている:
$serviceStatePath
は、上に示したxmlファイル名です
[xml]$priorServiceStates = Get-Content $serviceStatePath;
。
foreach ($obj in $priorServiceStates.Objects.Object)
{
if($obj.ServiceState -eq "Running")
{
$obj.DisplayName;
}
}
そして、この例では、私はSQL Server (MSSQLSERVER)
私はいくつかの説明を追加しました。 – mswietlicki
おなじみのプロパティ構文を使用してドキュメントを移動することもできます。 '($ xml.Objects.Object |?{$ _。ServiceState -eq" Running "})。DisplayName' – zneak