2017-09-28 3 views
0

新しい仮想ネットワークオブジェクトを作成し、サブネットを追加しようとしています。私は、ループ/オブジェクト作成部分について助けが必要です。以下のコードは動作しますが、入力ファイルのすべての行に対してSet-AzureRmVirtualNetworkコマンドを使用する必要があります。そのSetコマンドをForeachループの外に移動したとき、最後のサブネット(CSVの最後の行)をコミットしただけです。Powershell(Azure) - VirtualNetworkオブジェクトの作成

複数のサブネットが挿入され、最後に1回コミットされるようにオブジェクトを作成するにはどうすればよいですか?

function New-NCIAzureNetworks-1 { 
    [CmdletBinding()] 
    Param (
     # Param1 help description 
     [Parameter(Mandatory = $true, 
      ValueFromPipelineByPropertyName = $true, 
      Position = 0)] 
     $csvPath 
    ) 

    $azureSubnets = Import-Csv -Path $csvPath 

    Foreach ($azureSubnet in $AzureSubnets) { 
     $vnetName = $azureSubnet.Vnetname 
     $AddressPrefix = $azureSubnet.AddressPrefix 
     $SubnetName = $azureSubnet.SubnetName 
     $resourceGroup = $azureSubnet.ResourceGroup 

     $vnet = Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup 

     Add-AzureRmVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $vnet -AddressPrefix $AddressPrefix 

     Set-AzureRmVirtualNetwork -VirtualNetwork $vnet 
    } 
} 

答えて

1

いいえ、できません。これはofficial documentを参照してください。

Add-AzureRmVirtualNetworkSubnetConfigは、サブネットを仮想ネットワークのメモリ内表現に追加するために使用されます。 Set-AzureRmVirtualNetworkコマンドは、既存の仮想ネットワークを新しいサブネットで更新します。

現在、Add-AzureRmVirtualNetworkSubnetConfigには1つのサブネット内メモリしか格納できませんでした。したがって、Set-AzureRmVirtualNetworkを使用して、1つのコマンドで複数のサブネットを追加することはできませんでした。

しかし、VNetを作成するときは、1つのコマンドで複数のサブネットを接続できます。これはlinkを参照してください。

New-AzureRmVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup 
    -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet 
関連する問題