使用PowerShell为Azure中的现有nic分配公共IP地址

时间:2015-12-08 19:24:00

标签: powershell azure networking command-line-interface nic

使用Azure CLI,可以创建公共IP地址并为其分配例如

在给定资源组和区域中创建公共IP

azure network public-ip create -g myresourcegroup -a Dynamic -l westus mypublicipname

将上一步创建的点数分配给现有的资料

azure network nic set -g myresourcegroup -p mypublicipname mynicname

然而,PowerShell中的类似代码不起作用,例如

创建新的点子(成功完成)

$pip = New-AzureRmPublicIpAddress -Name $pipName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic -Force

分配给现有的资料

$nic = Get-AzureRmNetworkInterface -ResourceGroupName $rgName -Name $nicName
$nic.IpConfigurations[0].PublicIpAddress = $pip.IpAddress

最后一行不起作用并引发以下错误:

The property 'Id' cannot be found on this object. Verify that the property exists and can be set.
At line:31 char:9
+         $nic.IpConfigurations[0].PublicIpAddress.Id = $pip.Id
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound

尽管PS ISE中的intellisense确实显示了两者的Id属性!有谁知道这应该有用吗?

1 个答案:

答案 0 :(得分:4)

感谢AzureCAT的Tim Wieman(MSFT)提供的解决方案!基本上,您需要将新创建的pip分配给nic的PublicIPAddress属性,然后运行Set-AzureRmNetworkInterface命令,如下所示:

    $nic.IpConfigurations[0].PublicIpAddress = $pip 
    Set-AzureRmNetworkInterface -NetworkInterface $nic
相关问题