Neeraj Kumar
Neeraj Kumar

Reputation: 1

Parse the template in powershell

I wanted to parse the below template based on my parameters in powershell.

param(
 [string]$servicePrincipalId="e90a1407-55c3-432d-9cb1-3638900a9d22",
 [string]$azureSubscriptionId="123",
 [string]$resourceGroupName=245,
 [string]$vnetName=456
)

  Write-Host '{
  "Name":"AtlasPeering/($azureSubscriptionId)/$resourceGroupName/$vnetName",
 "IsCustom":true,
  "Description":"manage peering connections on network ",
 "Actions":[
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read",
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write",
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete",
  "Microsoft.Network/virtualNetworks/peer/action"
  ]
}'

The above template should print like below

 {
   "Name":"AtlasPeering/123/245/456",
  "IsCustom":true,
  "Description":"manage peering connections on network",
  "Actions":[
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read",
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write",
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete",
  "Microsoft.Network/virtualNetworks/peer/action"
  ]
}

Upvotes: 0

Views: 90

Answers (1)

boxdog
boxdog

Reputation: 8432

Try making the output string a here-string:

Write-Host @"
{
 "Name":"AtlasPeering/($azureSubscriptionId)/$resourceGroupName/$vnetName",
 "IsCustom":true,
 "Description":"manage peering connections on network ",
 "Actions":[
   "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read",
   "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write",
   "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete",
   "Microsoft.Network/virtualNetworks/peer/action"
 ]
}
"@

Upvotes: 1

Related Questions