Попытка получить значение следующих узлов из файла конфигурации IIS xml
Location Path =
allowUnlisted =
ipAddress =
subnetMask =
Я завис на части подсетиMask
@ Тео предоставил большую часть исправления для это уже, все, что я пытаюсь, сбрасывает весь массив Su bnet в поле su bnet
[xml]$xmlfull = (Get-Content .\Sample.xml)
$result = $xmlfull.configuration.location | ForEach-Object {
$client = $_.path
$allowUnlisted = $_.'system.WebServer'.security.ipSecurity.allowUnlisted
$subnets = $($_.'system.WebServer'.security.ipSecurity.add.subnetMask)
$ips = $($_.'system.WebServer'.security.ipSecurity.add.ipAddress)
foreach ($ip in $ips ) {
[PsCustomObject]@{
ExampleClinet = $client
AllowUnlisted = $allowUnlisted
IPAddress = $ip
Subnet =
}
}
}
# output on screen
$result
# output to CSV file
$result | Export-Csv -Path '\test.csv' -NoTypeInformation
Sample 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>