使用Azure PowerShell创建VM未分配公网IP的解决方法
原因说明
Az 8.0.0等部分版本的Compute模块中,New-AzVM简易创建模式下,未显式传入公网IP相关参数时,自动生成的公网IP资源不会正确关联到VM的主网卡IP配置,最终表现为VM创建成功但无公网IP。
修复方法
创建VM时显式指定-PublicIpAddressName参数即可,命令会自动创建对应名称的公网IP资源并完成全链路绑定,修改后的可直接运行脚本如下:
$username = 'demoadmin' $password = ConvertTo-SecureString 'Password123!@#' -AsPlainText -Force $WindowsCred = New-Object System.Management.Automation.PSCredential ($username, $password) New-AzVM -ResourceGroup 'psdemo-rg-uksouth' ` -Name 'psdemo-win-az' ` -Image 'win2016datacenter' ` -Size 'Standard_D2ads_v5' ` -Credential $WindowsCred ` -OpenPorts 3389 ` -PublicIpAddressName 'psdemo-win-az-pip'
补充说明
- 传入的
PublicIpAddressName如果在目标资源组下不存在,命令会默认创建标准SKU、动态分配方式的公网IP,自动关联到VM主网卡,创建完成后即可通过公网IP连接3389端口。 - 如果需要使用静态公网IP、或复用资源组内已存在的公网IP,可以提前创建/获取公网IP对象,通过
-PublicIpAddress参数传入即可。 - 创建完成后可执行以下命令快速查询VM绑定的公网IP地址:
Get-AzPublicIpAddress -ResourceGroupName 'psdemo-rg-uksouth' -Name 'psdemo-win-az-pip' | Select-Object IpAddress
内容的提问来源于stack exchange,提问作者Alexandru Serafim Bibu
相关产品推荐
相关产品推荐

