我正在尝试添加一个变量$numberOfNics
,根据数量添加nics。目前这是我的代码,我有点困惑如何将其放入循环中。我知道数组可能是正确的方法,但不确定如何制作一个仅调用变量而不是设置变量的数组。
旧代码:
$numberOfNics=1
$networkname1 = "ondemandport1"
$networkname2 = "ondemandport2"
$networkname3 = "ondemandport3"
$networkname4 = "ondemandport4"
$networkname5 = "ondemandport5"
$networkname6 = "ondemandport6"
$networkname7 = "ondemandport7"
$networkname8 = "ondemandport8"
$networkname9 = "ondemandport9"
$networkInterface1 = New-AzureRmNetworkInterface -Name $networkname1
$networkInterface2 = New-AzureRmNetworkInterface -Name $networkname2
$networkInterface3 = New-AzureRmNetworkInterface -Name $networkname3
$networkInterface4 = New-AzureRmNetworkInterface -Name $networkname4
$networkInterface5 = New-AzureRmNetworkInterface -Name $networkname5
为了整理这个,我想做一个循环,就像这样
for ($i = 0; $i -lt $numberOfNics; $i++)
{
$networkInterface$i = New-AzureRmNetworkInterface -Name $networkname$i
}
编辑: 感谢马丁,但是我现在遇到了调用变量的问题。
$networkInterfaces = 1 .. $numberOfNics | ForEach-Object {
if ($a -eq 0){
New-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName -Name "ondemandport$_" -Location $locationName -SubnetId $virtualNetwork.Subnets[$a].Id -PublicIpAddressId $publicIp.Id -force
}
ElseIf ($a=1){
New-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName -Name "ondemandport$_" -Location $locationName -SubnetId $virtualNetwork.Subnets[$a].Id -force
}
Else{
New-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName -Name "ondemandport$_" -Location $locationName -SubnetId $virtualNetwork.Subnets[2].Id -force
}
}
#
也希望将其转换为数组循环
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[1].Id -Primary
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[2].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[3].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[4].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[5].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[6].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[7].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[8].Id
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterfaces[9].Id
错误信息:Add-AzureRmVMNetworkInterface:无法验证参数“Id”。该参数为空。请提供一个非空的参数,然后再次尝试执行命令。
Get-AzureRemNetworkInterface
命令来检索 nic,参见我的编辑答案。 - Martin Brandl