Я пытаюсь получить значение "location path =", "allowUnlisted" и всех IP-адресов, чтобы я мог экспортировать их в csv.
Пример XML
<configuration>
<location path="Example/5192_proxy">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false">
<add ipAddress="10.10.100.0" subnetMask="255.255.252.0" allowed="true" />
<add ipAddress="10.10.48.0" subnetMask="255.255.240.0" allowed="true" />
<add ipAddress="10.10.100.0" subnetMask="255.255.252.0" allowed="true" />
<add ipAddress="192.168.63.97" subnetMask="255.255.255.224" allowed="true" />
</ipSecurity>
</security>
</system.webServer>
</location>
<location path="Example/3796_Proxy">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false">
<add ipAddress="192.168.30.52" allowed="true" />
<add ipAddress="10.10.48.0" subnetMask="255.255.240.0" allowed="true" />
</ipSecurity>
</security>
</system.webServer>
</location>
</configuration>
Это то, что у меня до сих пор, это бросать несколько чисел в поле «ExampleCLient»
$snippet.configuration.location."system.WebServer".security.ipSecurity |select @{L="ExampleClient";E={$snippet.configuration.location.path}}, allowUnlisted, add -ExpandProperty add
В конечном итоге я бы хотел, чтобы это читалось как
ExampleClient AllowUnlisted IPAddress
Example/5192 False 10.10.100.0
Example/5192 False 10.10.48.0
...
Example/3796_Proxy False 192.168.30.52
Править :
Это работает несколько, я думаю, я понял!
[xml]$xml = (Get-Content .\Sample.xml)
$finum = $($xml.configuration.location.path)
FOREACH ($fi in $finum)
{
$xml.configuration.location."system.webServer".security.ipSecurity |select allowUnlisted, add -ExpandProperty add |select @{L="FI";E={$fi}}, allowunlisted, ipaddress, subnetmask
}