我希望你们都做得很好
你能帮我解决这个问题吗?
$ipnumber = 3
$RgName = "test"
$Location = "test"
for ($i = 0; $i -lt $ipnumber; $i++) {
$res1 = -join ((1..10) | ForEach-Object { get-random -minimum 97 -maximum 122 | ForEach-Object { [char]$_ } })
$res2 = -join ((1..10) | ForEach-Object { get-random -minimum 97 -maximum 122 | ForEach-Object { [char]$_ } })
$PublicIP = '$PublicIP'
$IpConfigName = '$IpConfigName'
$IpConfig = '$IpConfig'
$ip = '10.0.0.'
$x = 25
$PublicIP = $PublicIP + $i
$IpConfigName = $IpConfigName + $i
$IpConfig = $IpConfig + $i
$x = 25 + $i
$ip = $ip + $x
#####################################
# Create a public IP address
$PublicIP = New-AzPublicIpAddress `
-Name "$res1" `
-ResourceGroupName $RgName `
-Location $Location `
-AllocationMethod dynamic
#Create an IP configuration with a dynamic private IP address and assign the public IP address to it
$IpConfigName = "$res2"
$IpConfig = New-AzNetworkInterfaceIpConfig `
-Name $IpConfigName `
-Subnet $Subnet `
-PrivateIpAddress $ip `
-PublicIpAddress $PublicIP
}
$rand6 = -join ((1..10) | ForEach-Object { get-random -minimum 97 -maximum 122 | ForEach-Object { [char]$_ } })
$NIC = New-AzNetworkInterface `
-Name $rand6 `
-ResourceGroupName $RgName `
-Location $Location `
-NetworkSecurityGroupId $NSG.Id `
-IpConfiguration $IpConfig0, $IpConfig1, $IpConfig2Error1 : 在这里输入图像描述
C:\Users\Marouane\Desktop\testpowershell\test2.ps1:95:22 Error2 : New-AzNetworkInterface: Line 95 95 $IpConfig,$IpConfig0,$IpConfig1 $IpConfig1~x不能绑定参数'IpConfiguration‘。无法将“"Microsoft.Azure.Commands.Network.Models.PSNetworkInterfaceIPConfiguration".”类型的"$IpConfig1“值转换为"System.String”类型
,我想把IP增加1 Ex : 10.0.0.25,然后10.0.26,然后10.0.27,但是它说你不能放进'IpConfiguration‘字符串ips,所以我该怎么办?请救救我!谢谢
发布于 2020-10-28 06:35:24
我想Mainich你在做数组操作。
如果我正确理解,您将尝试创建以下变量的数组:
$PublicIP = $PublicIP + $i
$IpConfigName = $IpConfigName + $i
$IpConfig = $IpConfig + $i例如,
IpConfig1,Ipconfig2,Ipconfig3 -并相应地存储该值。
不幸的是,实现稍有错误。
请注意:我只详细介绍了$ipconfig变量的操作。您可以将相同的内容扩展到其他变量,如$IpConfigName,$PublicIP。
到底发生了什么
对于所有的迭代,$IpConfig都会被更新&您想要的变量IpConfig1、Ipconfig2、Ipconfig3不是通过上面的逻辑创建的。
AzNetworkInterfaceIpConfig
在迭代1的末尾,$ipconfig的值是AzNetworkInterfaceIpConfig ipconfig1是不存在的。
建议:
下面创建一个带有固定数字的空数组--在您的示例3中,为$ipnumber =3
$ipconfig = @() * $ipnumber
$ipconfig.append(New-AzNetworkInterfaceIpConfig `
-Name <>`
-Subnet<>`
-PrivateIpAddress <> `
-PublicIpAddress <>)(或)
$ipconfig[0] = New-AzNetworkInterfaceIpConfig `
-Name <>`
-Subnet<>`
-PrivateIpAddress <> `
-PublicIpAddress <>现在您可以通过ipconfig、ipconfig1、ipconfig2访问这些值,也可以直接传递$ipconfig,因为参数Ip配置接受数组值。
-IpConfiguration <PSNetworkInterfaceIPConfiguration[]>
建议2:
如果您希望像ipconfig1、ipconfig2、ipconfig3这样动态地创建变量,那么您可以执行以下操作:
New-Variable -Name "Ipconfig$i" -Value <>
New-Variable -Name "Ipconfig$i" -Value <>
Get-Variable -Name "Ipconfig$i" -ValueOnlyhttps://stackoverflow.com/questions/64563749
复制相似问题