首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AzureRmVM -获取VM公共IP地址

问AzureRmVM -获取VM公共IP地址
EN

Stack Overflow用户
提问于 2018-12-23 00:42:17
回答 4查看 724关注 0票数 0

我正在尝试为我的azure订阅中的所有虚拟机获取IP地址。虽然我获得了所有NIC的IP地址,但我似乎无法为我的VM获取这些地址。我正在使用AzureRm和powershell来获取此信息。

如何使用AzureRm获取Azure中所有虚拟机的IP地址?

EN

回答 4

Stack Overflow用户

发布于 2018-12-24 14:55:22

你可以使用Azure PowerShell来获取所有的VM公共is,但是有一些事情你需要注意。

VM可以与多个网络接口相关联,并且每个网络接口还可以与公共Ip相关联。

我假设您的VM在相同的资源组中,并且每个VM只有一个网络接口。然后,PowerShell脚本将如下所示:

代码语言:javascript
复制
$vms = Get-AzureRmVM -ResourceGroupName yourRGName
foreach ($vm in $vms)
{
    $vmName = $vm.Name
    $nic = $vm.NetworkProfile.NetworkInterfaces[0].Id.Split('/') | select -Last 1
    if ( (Get-AzureRmNetworkInterface -ResourceGroupName yourRGName -Name $nic).IpConfigurations.PublicIpAddress -eq $null )
    {
        continue
    }
    $publicIpName =  (Get-AzureRmNetworkInterface -ResourceGroupName yourRGName -Name $nic).IpConfigurations.PublicIpAddress.Id.Split('/') | select -Last 1
    $publicIpAddress = (Get-AzureRmPublicIpAddress -ResourceGroupName yourRGName -Name $publicIpName).IpAddress
    Write-Output $vmName $publicIpAddress
}

结果将如下所示:

​

​

如果您的虚拟机位于不同的资源组中,您可以首先获取虚拟机信息,然后一切都在进行中。如果订阅中只存在您的虚拟机,则可以在登录订阅时使用PowerShell命令Get-azureRMVM获取所有虚拟机。但如果他们不仅仅是订阅中的VM,我认为您最好通过资源组获取所有VM。希望这能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-12-23 04:22:54

因为ARM中的IP地址分配给了NIC,而不是VM。您需要编写一个脚本来查看分配给VM的NIC,并在这些NIC上查找IP。

票数 0
EN

Stack Overflow用户

发布于 2018-12-24 14:05:08

你可以参考以下步骤来获取Azure订阅中的所有公共IP地址。

获取订阅中的所有公共IP地址。

代码语言:javascript
复制
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPAddresses?api-version=2018-08-01

单击Try it

​

​

=> 登录 => 选择一个Azure帐户 => 选择订阅Id => Run

​

​

查看订阅中的公共IP地址:

注意:仅运行的虚拟机将具有公共IP地址。

​

​

更多详情请参考"Public IP Address - List All“。

希望这能有所帮助。

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

https://stackoverflow.com/questions/53897488

复制
相关文章

相似问题

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