У меня есть сценарий PowerShell для Azure, который извлекает файл XML и затем запускает значения в цикле 'foreach'.
В хранилище Azure есть файл BLOB со следующим форматом (XML) -
<?xml version="1.0"?>
<Root>
<PublicSubnets>
<Subnet>192.168.1.0/24</Subnet>
<Subnet>192.168.50.0/24</Subnet>
<Subnet>10.82.19.5/24</Subnet>
<Subnet>10.1.1.0/16</Subnet>
<Subnet>172.16.15.0/16</Subnet>
</PublicSubnets>
<Descrip>
<Description>"This is the description"</Description>
</Descrip>
</Root>
Идея заключается в том, чтобы сценарий Azure PowerShell проходил по XML и создавал запись группы безопасности сети для каждого из них. Эта часть отлично работает.
Я пытаюсь вместо того, чтобы проглотить XML-файл, я хочу, чтобы это был Json со всеми значениями подсети.
Вот текущий сценарий (обратите внимание, что $ nsgname и $ resourcegroupname вводятся пользователем для группы безопасности сети, в которой сценарий затем создает записи NSG для каждой подсети в файле XML)
$Url = "https://theteststorage.blob.core.windows.net/params/SubnetParams.xml?st=2018-10-25T19andrestoftheURL"
$Subnets = @()
[xml]$xml = Invoke-WebRequest $Url -UseBasicParsing | Select-Object -Expand Content
$counter=0
foreach ($subnet in $xml.Root.PublicSubnets.Subnet)
{
$counter++
Write-Output "Counter is at $counter and subnet is $subnet"
}
Это должно распечатать:
Счетчик на 1, а подсеть 192.168.1.0/24
Счетчик на 2 и подсеть 192.168.50.0/24
Как бы я поступил так, но вместо XML это был бы Json