[Azure]获取当前订阅下所有ARM虚拟机的PublicIP

60 篇文章 0 订阅
59 篇文章 0 订阅

function GetVMIP($vmName, $rgName)

{

    # get VM

    $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName$rgName -ErrorActionSilentlyContinue

   

    # get nic name from nic resourceId

    if ($vm.NetworkProfile.NetworkInterfaces.Count -eq 0)

    {

        return;

    }

    $nicId = $vm.NetworkProfile.NetworkInterfaces[0].Id

    if ($nicId -eq $NULL)

    {

        return;

    }

    $nicName = $nicId.Substring($nicId.LastIndexOf('/') + 1)

    $nic = Get-AzureRmNetworkInterface -Name$nicName -ResourceGroupName$rgName -ErrorActionSilentlyContinue

   

    # get pip name from pip resourceId

    if ($nic.IpConfigurations.Count-eq 0)

    {

        return;

    }

    $pipId = $nic.IpConfigurations[0].PublicIpAddress.Id

    if ($pipId -eq $NULL)

    {

         return;

    }

    $pipName = $pipId.Substring($pipId.LastIndexOf('/') + 1)

   

    # get public ip address

    $pipAddr = Get-AzureRmPublicIpAddress -Name$pipName -ResourceGroupName$rgName -ErrorActionSilentlyContinue

    if ($pipAddr-eq $NULL-or $pipAddr.IpAddress -eq"Not Assigned")

    {

        return;

    }

 

    $vmInfo =@{rgName = $rgName;vmName = $vmName;publicIPAddress = $pipAddr.IpAddress};

    $vmInfos.add($vmInfo)

}

 

$vms = get-azurermvm

foreach($vm in $vms)

{

    GetVMIP $vm.Name $vm.ResourceGroupName;

}

 

# format output

$vmInfos | select @{Name="Resource Group Name"; Expression={$_["rgName"]}}, @{Name="VM Name";Expression={$_["vmName"]}}, @{Name="Public IPAddress"; Expression={$_["publicIPAddress"]}}

 

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值