我正在尝试获取我的azure订阅中所有虚拟机的IP地址。当我获得所有网卡的IP地址时,似乎无法为我的VM获得它们。我正在使用AzureRm和powershell来获取此信息。
如何使用AzureRm获取Azure中所有虚拟机的IP地址?
答案 0 :(得分:0)
因为ARM中的IP地址是分配给NIC而不是VM。您将编写一个脚本来查看分配给VM的NIC并在这些NIC上查找IP。
答案 1 :(得分:0)
您可以参考以下步骤在Azure订阅中获取所有公共IP地址。
获取订阅中的所有公共IP地址。
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPAddresses?api-version=2018-08-01
点击尝试
=> 登录 => 选择Azure帐户 => 选择订阅ID => 运行 < / p>
查看订阅中的公共IP地址:
注意:只有正在运行的VM才会具有公共IP地址。
有关更多详细信息,请参阅“ Public IP Address - List All”。
希望这会有所帮助。
答案 2 :(得分:0)
您可以使用Azure PowerShell获取所有VM公用IP,但是您应该注意一些事项。
VM可以与多个网络接口关联,并且每个网络接口也可以与公共IP关联。
我假设您在同一资源组中的VM和每个VM仅具有一个网络接口。然后,PowerShell脚本将如下所示:
$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
}
结果将如下所示:
如果您的VM位于不同的资源组中,则可以先获取VM信息,然后一切都在进行中。如果订阅中仅存在您的VM,则在登录订阅时可以使用PowerShell命令Get-azureRMVM
获取所有VM。但是,如果它们不仅仅是订阅中的VM,我认为您最好通过资源组来获取所有VM。希望对您有帮助。
答案 3 :(得分:0)
正在追问徐兆良的出色答案。
已转换为使用新的'Az' powershell module
renderUI({
selectInput('question', 'Select Question:',
strQuestions(), width="100%")
})
这太慢了,但是能干!