【问题标题】:Azure Route Table Modification With Powershell使用 Powershell 修改 Azure 路由表
【发布时间】:2019-12-19 13:52:07
【问题描述】:

我们需要能够快速修改 20 多个路由表。

我们有 2 个 NVA 可以充当下一跳,但我们无法找到正确的解决方案。

我们陷入了困境:

 $groupname = Get-AzResourceGroup | Out-GridView  –PassThru  | Select -ExpandProperty ResourceGroupName
 $rt = Get-AzRouteTable -ResourceGroupName $groupname | Out-GridView -PassThru 
 $oldroutes = Get-AzRouteTable -ResourceGroupName $groupname | Get-AzRouteConfig | Where-Object -Property NextHopIpAddress -Like 1.1.1.1 | Select -ExpandProperty Name
 foreach ($oldroutes in $oldroutes)
 {
 Set-AzRouteConfig -RouteTable $rt -Name $oldroute -NextHopIpAddress 2.2.2.2 | Set-AzRoutetable }

这适用于能够遍历所有路由表并识别具有下一跳为 1.1.1.1 的所有路由并将它们存储在名为 $oldroutes 的变量中的部分,并且仅选择 Set 所需的路由名称-AZRouteConfig 命令。

它运行正确,直到设置部分。而不是修改它只是将 NextHopIpAddress 设置为 2.2.2.2 并删除所有其他值,因此当我们尝试提交更改时会出现错误。

Set-AzRoutetable : 资源的地址前缀字符串......不能为空

有没有人这样做过,或者我们可能遗漏了什么?

提前谢谢你!

【问题讨论】:

    标签: azure powershell


    【解决方案1】:

    我可以重现您的问题,使用Set-AzRouteConfig | Set-AzRoutetable时,需要参数-AddressPrefix,如果您不想更改,可以使用原始参数指定。而如果你想设置-NextHopIpAddress,你只需要用VirtualAppliance来指定-NextHopType。而这部分$oldroutes in $oldroutes也有错误,应该是$oldroute in $oldroutes

    总而言之,您的脚本应该如下所示。

    $groupname = Get-AzResourceGroup | Out-GridView  –PassThru  | Select -ExpandProperty ResourceGroupName
    $rt = Get-AzRouteTable -ResourceGroupName $groupname | Out-GridView -PassThru 
    $oldroutes = Get-AzRouteTable -ResourceGroupName $groupname | Get-AzRouteConfig | Where-Object -Property NextHopIpAddress -Like 1.1.1.1
    foreach ($oldroute in $oldroutes)
    {
     Set-AzRouteConfig -RouteTable $rt -Name $oldroute.Name -AddressPrefix $oldroute.AddressPrefix -NextHopType VirtualAppliance -NextHopIpAddress 2.2.2.2 | Set-AzRoutetable
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2018-04-03
      相关资源
      最近更新 更多