Powershell 출력하지 배열 형식의 그러나 문자열을 입력?

0

질문

안녕하세요 제가 스크립트를 작성하는 통화를 AZ 마이그레이션 api

        $siteuri= 'https://management.azure.com/subscriptions/' + $metadata.compute.subscriptionID +'/resourceGroups/' + $AzMigreateResourceGroup+ '/providers/Microsoft.Migrate/migrateProjects/' + $ProjectName + '/solutions/Servers-Discovery-ServerDiscovery?api-version=2018-09-01-preview'
        $siteoutput=(Invoke-RestMethod -Headers $Authtoken -uri $siteuri).properties.details.extendeddetails.applianceNameToSiteIdMapV3

결과는 난이

[
  {
    "lab3dev-app01": {
      "ApplianceName": "xxx",
      "SiteId": "xxx",
      "KeyVaultId": "xxx",
      "KeyVaultUrl": "xxx",
      "ApplianceDetails": {
        "machineID": "xxx",
        "IPAddress": "192.168.50.210",
        "HostName": "WIN-ETP6NTN8B65",
        "isRegistered": true,
        "discoveryStatus": "Success",
        "deepDiscoveryDisabled": false
      },
      "CertificateContents": {
        "xxx": ""
      },
      "AadAppDetails": {
        "TenantID": "xxx",
        "AppName": "xxx",
        "AppID": "xxx",
        "ObjectID": "xxx"
      },
      "ScaleOutList": null,
      "isV2Site": false
    }
  },
  {
    "l3devhyper01": {
      "ApplianceName": "xxx",
      "SiteId": "xxx",
      "KeyVaultId": "xxx",
      "KeyVaultUrl": "xxx",
      "ApplianceDetails": {
        "machineID": "xxx",
        "IPAddress": "192.168.50.143",
        "HostName": "WIN-PKKCDSLE6OD",
        "isRegistered": true,
        "discoveryStatus": "Success",
        "deepDiscoveryDisabled": false
      },
      "CertificateContents": {
        "l3devhyper017a74agentauthcertv2": ""
      },
      "AadAppDetails": {
        "TenantID": "xxx",
        "AppName": "xxx",
        "AppID": "xxx",
        "ObjectID": "xxx"
      },
      "ScaleOutList": null,
      "isV2Site": false
    }
  }
]

었다는 희망이 될 수 있는 스토리지 유형,그래서 내가 할 수 있는 몇 가지 검색이지만,gettype()게 이 문자열?

어쨌든 출력으로 이것을 배열되지 않는 문자열?

azure powershell
2021-11-24 05:17:33
1

최고의 응답

1

Invoke-RestMethod 는 반환체,당신은 심지어 그것을 사용하여 액세스하는 특정을 제공합니다. 당신이 필요할 것을 보 API 를 설명을 볼 때마다 그냥 문자열을 특성으로(수 있는 경우).

당신이 볼 수 있는 문자열에는 JSON 사용할 수 있습 할 수 있는지 여부를 반-Json 으 로를 설정하는 객체입니다.

가장 쉬운 경우 추가하지 않고 오류가 처리는 될 것이다:

$siteoutput = Invoke-RestMethod -Headers $Authtoken -uri $siteuri
$siteoutput = $siteoutput.properties.details.extendeddetails.applianceNameToSiteIdMapV3 | ConvertFrom-Json
2021-11-24 07:03:22

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................