Итак, у меня есть этот массив информации, который я собираю из своей подписки azure, которая конвертируется из json:
$Request += (((az consumption usage list --subscription $subscriptionID --start-date $CycleStart --end-date $CycleEnd) 2> $null | ConvertFrom-Json) | select subscriptionname, instanceName, usageStart, usageEnd, pretaxCost, tags )
, которая производит массив, который выглядит нормально:
$Request
subscriptionName : Sub1
instanceName : VM1
usageStart : 2020-01-27T00:00:00Z
usageEnd : 2020-01-27T23:59:59Z
pretaxCost : 3.194
tags : @{Classification=ABC, Zone=123, Field=qaz, Org=CAL, Owner=Bob@dev}
subscriptionName : Sub1
instanceName : VM2
usageStart : 2020-01-27T00:00:00Z
usageEnd : 2020-01-27T23:59:59Z
pretaxCost : 2.1
tags : @{Classification=zzz, Zone=123, Field=qaz, Org=NZ, Owner=John@prod}
Но, как вы видите, поле «теги» выглядит объединенным между @ {xxxx}. То, что я хотел бы получить и не смог после нескольких часов проб и ошибок (!), Выглядит примерно так:
subscriptionName : Sub1
instanceName : VM1
usageStart : 2020-01-27T00:00:00Z
usageEnd : 2020-01-27T23:59:59Z
pretaxCost : 3.194
Classification : ABC
Zone : 123
Field : qaz
Org : CAL
Owner : Bob@dev
subscriptionName : Sub1
instanceName : VM2
usageStart : 2020-01-27T00:00:00Z
usageEnd : 2020-01-27T23:59:59Z
pretaxCost : 2.1
Classification : ABC
Zone : 222
Field : BIZ
Org : NZ
Owner : John@dev
Но ... поле, вложенное в теги, может со временем меняться, поэтому я могу не зашифровывает что-то, что будет искать "Классификация", "Зона", "Поле" и т. д. c ...)
Может кто-нибудь помочь мне с этим? :)
Я наткнулся на этот сценарий, думая, что он может помочь, но не смог заставить его работать .. https://github.com/solidstate888/JSON-ToCSV