代码改变世界

Azure ASM模式下获取订阅下VM信息

2018-10-23 13:16  WangSong技术点滴  阅读(420)  评论(0编辑  收藏  举报

Azure ASM模式下获取VM信息

  当然目前我们还有一些客户使用ASM模式,也需要获得信息,可以参考如下脚本,ARM可以参考link:https://www.cnblogs.com/wangsongshare/p/9835841.html

  1. 如下介绍通过直接运行PowerShell脚本就可以很快获取到全部信息
  2. 脚本如下:

可以通过powershell收集统计VM的公网IP,内网IP,机器型号,位置,操作系统

$info=[System.Collections.ArrayList]@()

$svcs=(Get-AzureService).ServiceName

foreach($svcName in $svcs){

    Get-AzureDeployment -ServiceName $svcName >>null -ErrorAction Ignore

    if( $?)

    {

        $vms=Get-AzureVM -ServiceName $svcName

    $svc=Get-AzureService -ServiceName $svcName

    $dep=Get-AzureDeployment -ServiceName $svcName

    foreach( $vm in $vms)

    {

        $d=@{}

        $d.Add("VMname",$vm.Name)

        $d.Add("ServiceName",$svcName)

        $d.Add("VMSize",$vm.InstanceSize)

        $d.Add("OStype",$vm.VM.OSVirtualHardDisk.OS )

        $d.Add("PrivateIP",$vm.IpAddress)

       

        if(Get-AzureStaticVNetIP  -VM $vm){

                    $d.Add("PrivateIPreserved","Yes")

                }

        else{

                    $d.Add("PrivateIPreserved","No")

        }

                $d.Add("PublicIP",$dep.VirtualIPs[0].Address)

        if ($dep.ReservedIPName ){

                    $d.Add("PublicIPreserved","Yes")

        }

        else

        {

            $d.Add("PublicIPreserved","No")

        }

             $d.Add("Location",$svc.Location )

        $info.Add($d)

          }

        }

}

 

$info | select @{Name="Vmname";Expression={$_["Vmname"]}},@{Name="Vmsize";Expression={$_["Vmsize"]}},@{Name="OStype";Expression={$_["OStype"]}},@{Name="ServiceName";Expression={$_["ServiceName"]}},@{Name="PrivateIP";Expression={$_["PrivateIP"]}},@{Name="PrivateIPreserved";Expression={$_["PrivateIPreserved"]}},@{Name="PublicIP";Expression={$_["PublicIP"]}},@{Name="PublicIPreserved";Expression={$_["PublicIPreserved"]}},@{Name="Location";Expression={$_["Location"]}} |Out-GridView

  1. 跑完脚本之后,可以获取到如下信息:

 

  1. 如上图可以非常清晰的看到所有VM的信息,这对于IT运维会很方便,尤其是大客户几百台机器需要统计,这可以节省大量时间。当然也可以直接导出到csv文件,添加端口等信息,这个供大家参考。固定IP可以参考:https://www.cnblogs.com/wangsongshare/p/8329051.html