首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure-Powershell脚本错误(ip地址增量)

Azure-Powershell脚本错误(ip地址增量)
EN

Stack Overflow用户
提问于 2020-10-27 22:25:36
回答 1查看 156关注 0票数 0

我希望你们都做得很好

你能帮我解决这个问题吗?

代码语言:javascript
复制
$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, $IpConfig2

Error1 : 在这里输入图像描述

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,所以我该怎么办?请救救我!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 06:35:24

我想Mainich你在做数组操作。

如果我正确理解,您将尝试创建以下变量的数组:

代码语言:javascript
复制
$PublicIP = $PublicIP + $i
$IpConfigName = $IpConfigName + $i
$IpConfig = $IpConfig + $i

例如,

IpConfig1,Ipconfig2,Ipconfig3 -并相应地存储该值。

不幸的是,实现稍有错误。

请注意:我只详细介绍了$ipconfig变量的操作。您可以将相同的内容扩展到其他变量,如$IpConfigName,$PublicIP

到底发生了什么

对于所有的迭代,$IpConfig都会被更新&您想要的变量IpConfig1、Ipconfig2、Ipconfig3不是通过上面的逻辑创建的。

  1. 将变量ipConfig初始化为字符串。
  2. 用字符串值$ipconfig1覆盖变量ipconfig的值(用于第一次迭代)
  3. 用object覆盖变量ipconfig的字符串值。

AzNetworkInterfaceIpConfig

在迭代1的末尾,$ipconfig的值是AzNetworkInterfaceIpConfig ipconfig1是不存在的。

建议:

下面创建一个带有固定数字的空数组--在您的示例3中,为$ipnumber =3

代码语言:javascript
复制
$ipconfig = @() * $ipnumber

$ipconfig.append(New-AzNetworkInterfaceIpConfig `
    -Name <>`
    -Subnet<>`
    -PrivateIpAddress <> `
    -PublicIpAddress <>)

(或)

代码语言:javascript
复制
$ipconfig[0] = New-AzNetworkInterfaceIpConfig `
        -Name <>`
        -Subnet<>`
        -PrivateIpAddress <> `
        -PublicIpAddress <>

现在您可以通过ipconfig、ipconfig1、ipconfig2访问这些值,也可以直接传递$ipconfig,因为参数Ip配置接受数组值。

-IpConfiguration <PSNetworkInterfaceIPConfiguration[]>

https://learn.microsoft.com/en-us/powershell/module/az.network/new-aznetworkinterface?view=azps-5.0.0

建议2:

如果您希望像ipconfig1、ipconfig2、ipconfig3这样动态地创建变量,那么您可以执行以下操作:

代码语言:javascript
复制
New-Variable -Name "Ipconfig$i" -Value <>
New-Variable -Name "Ipconfig$i" -Value <>
Get-Variable -Name "Ipconfig$i" -ValueOnly
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64563749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档