[Azure]获取当前订阅下所有ARM虚拟机的PublicIP
2017-02-15 14:58
405 查看
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"]}}
执行结果:
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"]}}
执行结果:
相关文章推荐
- Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
- Azure Powershell获取指定订阅下的虚拟机信息(ARM)
- 一次性查看Azure订阅下所有虚拟机VM的公网IP/Public IP和私网IP/Private IP
- [Azure]使用Powershell导出所有订阅下的ARM虚拟机的信息
- [Azure]使用Powershell获取Azure ARM模式订阅下的一些常用信息
- Azure Automation (3) 定期将某个Azure订阅下的所有虚拟机开关机
- [Azure]使用Powershell输出Azure订阅下所有虚拟机的ACL信息
- [Azure] 使用Azure Powershell脚本查看账号下所有订阅中的云服务公网IP地址绑定情况
- Azure Powershell获取指定订阅下的虚拟机信息(ASM)
- Atitit 网络设备的自动发现机制 需求如下: 1、自动获取当前设备所在网段及当前与当前网段有连接的网段的所有IP,并判断出是哪类设备。如:服务器、交换机、防火墙等。 2、如何根据第1点得到的
- 通过Azure Powershell获取asm及arm虚拟机的配置信息
- Azure运维系列10:跨订阅迁移ARM虚拟机
- [Azure]使用Powershell获取ARM模式下可用的虚拟机平台映像信息
- [Azure]使用Azure Powershell输出ARM模式下某个账号中所有订阅下的虚拟网络拓扑
- 获取所有IE当前浏览的Url
- 获取当前目录下的所有文件
- 获取当前数据库中所有表的记录数
- delphi获取当前计算机所有盘符
- delphi获取当前计算机所有盘符
- 请教:在一个在方法段的异常处理里面,如何获取当前方法输入的所有参数值。