首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powershell Az命令时不会创建Subnets

使用Powershell Az命令时不会创建Subnets
EN

Stack Overflow用户
提问于 2020-08-02 14:48:37
回答 3查看 859关注 0票数 1

下面的PowerShell脚本可以在Azure中创建vnetsubnet

代码语言:javascript
复制
 $virtualNetworkName = 'corp-northeurope-vnet'
 $frontendSubnetName = 'frontendsubnet'
 $vNetAddressPrefix = "10.0.0.0/26"
 $SubnetAddressPrefix = "10.0.1.0/28"


 $virtualNetwork = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $rgName
if ($null -eq $virtualNetwork) {
    $virtualNetwork = New-AzVirtualNetwork `
        -Name $virtualNetworkName `
        -ResourceGroupName $rgName `
        -AddressPrefix $vNetAddressPrefix `
        -Location $location 
}
else {
    Write-Log -Message "[$($virtualNetwork.Name)] already exists"
}


$fesubnet = Get-AzVirtualNetworkSubnetConfig -Name $frontendSubnetName -VirtualNetwork $virtualNetwork
if ($null -eq $fesubnet) {
    $fesubnet = Add-AzVirtualNetworkSubnetConfig `
        -Name $frontendSubnetName `
        -AddressPrefix $subnetAddressPrefix `
        -VirtualNetwork $virtualNetwork

    $virtualNetwork | Set-AzVirtualNetwork
}
else {
    Write-Log -Message "[$($fesubnet.Name)] already exists"
}

但不起作用。

错误抛到这里

$virtualNetwork \ Set-AzVirtualNetwork子网“frontendsubnet”在虚拟网络“corp-northeurope”中无效。StatusCode: 400 ReasonPhrase: Bad ErrorCode: NetcfgInvalidSubnet ErrorMessage: Subnet 'frontendsubnet‘在虚拟网络’corp-northeurope‘中无效。OperationID :06c1ed77-14f1-294 d-a19a-41c2epbdd04f

这和IP范围有关吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-03 07:06:30

由子网地址前缀引起的错误。当VNet地址前缀为10.0.0.0/26时。那么您的子网地址范围应该小于10.0.0.0/26。您可以将子网前缀更改为10.0.0.0/28。那就没问题了。

票数 1
EN

Stack Overflow用户

发布于 2020-08-03 08:27:57

子网的IP范围不在VNET的IP范围内,这将导致子网配置无效。

因此,要么将子网地址前缀更改为VNETs地址前缀,要么扩展VNETs地址前缀,使其包含要创建的子网的范围。

用于规划IP地址前缀的一个好工具是:http://jodies.de/ipcalc?host=10.0.0.0&mask1=26&mask2=

票数 2
EN

Stack Overflow用户

发布于 2020-08-02 20:35:53

一个问题是第二个命令行。

如果您说已经创建了Vnet、子网、Vnet IP CIDR前缀和子网IP CIDR前缀,则子网的命令不是$frontendSubnetName,“前端”是包含在Vnet中的子网的名称"corp-northeurope-vnet“。

代码语言:javascript
复制
$frontendSubnetName = 'frontendsubnet' 

命令frontendSubnetName是错误的,正确的应该是:

代码语言:javascript
复制
$subnetConfig = 'frontendsubnet'

尝试使用以下命令:

代码语言:javascript
复制
$virtualNetworkName = 'corp-northeurope-vnet'
$subnetConfig = 'frontendsubnet'
$vNetAddressPrefix = "10.0.0.0/26"
$SubnetAddressPrefix = "10.0.1.0/28"

在这里,正式文档:https://learn.microsoft.com/en-us/azure/virtual-network/quick-create-powershell

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63217392

复制
相关文章

相似问题

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