powershell convertfrom- json различия между выбранными объектами - PullRequest
1 голос
/ 28 апреля 2020

Учитывая приведенную ниже json полезную нагрузку (только пример фрагмента из «списка групп az»):

[

    {
        "id": "/subscriptions/1f512sf9-112c-4a7a-a580-665afe4761f4/resourceGroups/dev-rg",
        "location": "northeurope",
        "managedBy": null,
        "name": "dev-rg",
        "properties": {
          "provisioningState": "Succeeded"
        },
        "tags": {
          "Application": "Integrations",
          "Department": "Development Team",
          "DeployedDate": "09/01/2020",
          "Environment": "DEV",
          "FundedBy": "INT",
          "InterfaceId": "IFUS_007.1",
          "Project": "INT"
        },
        "type": "Microsoft.Resources/resourceGroups"
      }
    ]

Может кто-нибудь объяснить, почему работает ниже

PS C:\Windows\system32> az group list | convertfrom-json | select-object @{n='RSG';e={$_.name}}

RSG
---
{dev-rg}

и почему ниже не (возвращается пустым)

PS C:\Windows\system32> az group list | convertfrom-json | select-object name

name
----

Ответы [ 2 ]

3 голосов
/ 28 апреля 2020

Это ошибка Windows PowerShell для ConvertFrom- Json и конвейера.

Групповые команды (), чтобы они правильно оценивались.

(az group list | ConvertFrom-Json) | Select-Object name

Исправлено в ядре PowerShell.

1 голос
/ 28 апреля 2020

Добавляя к @ 7 cc ответ, вы также можете использовать Get-AzResourceGroup Командлет из Azure PowerShell, который даст вам объект PowerShell для работы с немедленно. Это проще, чем преобразовать вывод JSON из Azure CLI с помощью az group list в System.Management.Automation.PSCustomObject с ConvertFrom-Json.

Чтобы получить все группы ресурсов в столбце Name:

Get-AzResourceGroup | Select-Object -Property @{Name = "Name"; Expression = { $_.ResourceGroupName } }

Или просто оставить столбец по умолчанию ResourceGroupName:

Get-AzResourceGroup | Select-Object -Property ResourceGroupName
...