首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想循环这个脚本(Azure-powershell / Powershell)

我想循环这个脚本(Azure-powershell / Powershell)
EN

Stack Overflow用户
提问于 2020-10-28 14:22:53
回答 2查看 214关注 0票数 0

我想要一个循环,可以指定我想要的增量的数目,并且我希望通过1来增加一些参数,比如$ipconfig $Ipconfigname $publicip和10.0.0.25

我想要的结果是:

代码语言:javascript
复制
#####################################
# Create a public IP address 1
$PublicIP1 = New-AzPublicIpAddress `
    -Name "q9r933209h1" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod dynamic
#Create an IP configuration with a dynamic private IP address and assign the public IP address to it
$IpConfigName1 = "00iifcow5n1"
$IpConfig1 = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName1 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.25 `
    -PublicIpAddress $PublicIP1

#####################################   
# Create a public IP address 2
$PublicIP2 = New-AzPublicIpAddress `
    -Name "q9r933209h2" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod dynamic
#Create an IP configuration with a dynamic private IP address and assign the public IP address to it
$IpConfigName2 = "00iifcow5n2"
$IpConfig2 = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName2 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.26 `
    -PublicIpAddress $PublicIP2

#####################################   
# Create a public IP address 3
$PublicIP3 = New-AzPublicIpAddress `
    -Name "q9r933209h3" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod dynamic
#Create an IP configuration with a dynamic private IP address and assign the public IP address to it
$IpConfigName3 = "00iifcow5n3"
$IpConfig3 = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName3 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.27 `
    -PublicIpAddress $PublicIP3

我想要一个循环来创建这个x号

代码语言:javascript
复制
#####################################
# Create a public IP address 1
$PublicIP1 = New-AzPublicIpAddress `
    -Name "q9r933209h1" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod dynamic
#Create an IP configuration with a dynamic private IP address and assign the public IP address to it
$IpConfigName1 = "00iifcow5n1"
$IpConfig1 = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName1 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.25 `
    -PublicIpAddress $PublicIP1

一个接一个的循环,我想运行这个命令

代码语言:javascript
复制
$NIC = New-AzNetworkInterface `
    -Name X `
    -ResourceGroupName $RgName `
    -Location $Location `
    -NetworkSecurityGroupId $NSG.Id `
    -IpConfiguration $IpConfig1, $IpConfig2, $IpConfig3, .....,$IpConfig(x time)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-28 14:43:47

有几种方法可以循环。在本例中,我使用了创建数组并将其输送到foreach对象的方法。您不必使用$($_),您可以只使用$_,但我添加它是为了提高可读性。

代码语言:javascript
复制
$Loop = 3
(1..$Loop) | foreach-object{
    #####################################
    # Create a public IP address 1
    $PublicIP1 = New-AzPublicIpAddress `
    -Name "q9r933209h$($_)" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod dynamic
    #Create an IP configuration with a dynamic private IP address and assign the public IP address to it
    $IpConfigName1 = "00iifcow5n$($_)"
    $IpConfig1 = New-AzNetworkInterfaceIpConfig `
        -Name (Get-Variable -Name "IpConfigName$($_)" -ValueOnly) `
        -Subnet $Subnet `
        -PrivateIpAddress "10.0.0.$(25 + ($_ - 1))" `
        -PublicIpAddress (Get-Variable -Name "PublicIP$($_)" -ValueOnly) `
}
票数 0
EN

Stack Overflow用户

发布于 2020-10-28 20:47:09

像这样的事情应该有效:

代码语言:javascript
复制
$x = 4
$publicIpParams = @{
    ResourceGroupName = $RgName
    Location = $Location
    AllocationMethod = 'Dynamic'
}
$ipConfiguration = 1..$x | ForEach-Object {
    $publicIP = New-AzPublicIpAddress @publicIpParams -Name ("q9r933209h{0}" -f $_)
    $ipcParams = @{
        Name = "00iifcow5n{0}" -f $_
        Subnet = $Subnet
        PrivateIpAddress = '10.0.0.{0}' -f (24 + $_)
        PublicIpAddress = $publicIp
    }
    New-AzNetworkInterfaceIpConfig @ipcParams
}

$niParams = @{
    Name = 'X'
    ResourceGroupName = $RgName
    Location = $Location
    NetworkSecurtyGroupId = $nsg.Id
    IpConfiguration = $ipConfiguration
}
New-AzNetworkInterface @niParams
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64574826

复制
相关文章

相似问题

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