为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本:

详情脚本:

# 登陆Azure Account
Add-AzureAccount -Environment AzureChinaCloud # 设置订阅ID
$sub = "******"
Select-AzureSubscription -SubscriptionName $sub # 设置Excel格式
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.add()
$sheet = $workbook.worksheets.Item(1)
$sheet.cells.item(1,1) = "Test"
$excel.Visible = $true for($b = 1 ; $b -le 13 ; $b++)
{
$sheet.cells.item(1,$b).font.bold = $true
#$sheet.cells.item(1,$b).borders.LineStyle = $lineStyle::xlDashDot
$sheet.cells.item(1,$b).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
$sheet.cells.item(1,$b).borders.weight = $borderWeight::xlMedium
} $x = 2
$lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type]
$colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type]
$borderWeight = "microsoft.office.interop.excel.xlBorderWeight" -as [type]
$chartType = "microsoft.office.interop.excel.xlChartType" -as [type]
$sheet.cells.item(1,1) = "名称"
$sheet.cells.item(1,2) = "类型"
$sheet.cells.item(1,3) = "状态"
$sheet.cells.item(1,4) = "云服务"
$sheet.cells.item(1,5) = "位置"
$sheet.cells.item(1,6) = "订阅ID"
$sheet.cells.item(1,7) = "内网IP"
$sheet.cells.item(1,8) = "配置信息"
$sheet.cells.item(1,9) = "系统"
$sheet.cells.item(1,10) = "DNS域名"
$sheet.cells.item(1,11) = "公网IP"
$sheet.cells.item(1,12) = "公共端口"
$sheet.cells.item(1,13) = "私有端口" # 定义变量
$vms = Get-AzureVM
$vmCount = $vms.Count # 提取变量Value
for($i=0; $i -lt $vmCount; $i++)
{
$vm = $vms[$i];
$sheet.cells.item($x,1) = $vm.name
$sheet.cells.item($x,2) = "虚拟机(经典)"
$sheet.cells.item($x,3) = $vm.status
$sheet.cells.item($x,4) = $vm.ServiceName
$uri=$vm.VM.OSVirtualHardDisk.MediaLink.AbsoluteUri
$location=Get-AzureDisk | Where-Object {$_.MediaLink -eq $uri}| Select-Object Location
$sheet.cells.item($x,5) = $location.Location
$sheet.cells.item($x,6) = $sub
$sheet.cells.item($x,7) = $vm.IpAddress
$sheet.cells.item($x,8) = $vm.InstanceSize
$sheet.cells.item($x,9) = $vm.VM.OSVirtualHardDisk.OS
$sheet.cells.item($x,10) = $vm.ServiceName+".chinacloudapp.cn"
$endpoints = Get-AzureEndpoint -VM $vm
$endpointsCount = $endpoints.Count
for($j=0; $j -lt $endpointsCount; $j++)
{
$endpoint = $endpoints[$j];
$sheet.cells.item($x,11) = $endpoint.vip
$sheet.cells.item($x,12) = $endpoint.port
$sheet.cells.item($x,13) = $endpoint.localport $x++
}
}
$range = $sheet.usedRange
$range.EntireColumn.AutoFit() | out-null $uri=$vm.VM.OSVirtualHardDisk.MediaLink.AbsoluteUri
$location=Get-AzureDisk | Where-Object {$_.MediaLink -eq $uri}| Select-Object Location

输出项及格式见下:

备注:

1.运行脚本期间可能会出现如下报错,忽略即可,不影响最终的结果统计。

2.该脚本运行前,需要事先定义好订阅

3.该脚本输出的为一个Excel表格,输出期间不要关闭正在运行的Excel

4.如果需要对指定Azure账号下的所有订阅进行统计,可参考如下脚本的遍历订阅方法,参考链接:

https://blogs.msdn.microsoft.com/tomholl/2016/11/22/dumping-details-of-azure-virtual-machines-to-csvexcel/

param(
[string]$file="Azure-Classic-VMs.csv"
) add-azureaccount -Environment AzureChinaCloud $subs = Get-AzureSubscription
$vmobjs = @() foreach ($sub in $subs)
{
Write-Host Processing subscription $sub.SubscriptionName try
{
Select-AzureSubscription -SubscriptionId $sub.SubscriptionId -ErrorAction Continue $vms = Get-AzureVm
$svcs = Get-AzureService foreach ($vm in $vms)
{
$service = $svcs | where-object { $_.ServiceName -eq $vm.ServiceName } $vmInfo = [pscustomobject]@{
'Subscription'=$sub.SubscriptionName
'Mode'='Classic'
'Name'=$vm.Name
'ServiceName' = $vm.ServiceName
'Location' = $service.Location
'VMSize' = $vm.InstanceSize
'Status' = $vm.Status
'AvailabilitySet' = $vm.AvailabilitySetName} $vmobjs += $vmInfo }
}
catch
{
Write-Host $error[0]
}
}

Azure Powershell获取指定订阅下的虚拟机信息(ASM)的更多相关文章

  1. Azure Powershell获取指定订阅下的虚拟机信息(ARM)

    为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureRmAccount -EnvironmentName AzureCh ...

  2. [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    原文:http://blog.csdn.net/vchao13/article/details/6200255 1.获取指定目录下所有文件信息 /// <summary> /// 返回指定 ...

  3. C# 获取指定目录下所有文件信息

    /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...

  4. 获取指定订阅下所有Azure ARM虚拟机配置(CPU核数,内存大小,磁盘信息)的使用情况

    脚本内容: <# .SYNOPSIS This script grab all ARM VM VHD file in the subscription and caculate VHD size ...

  5. C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    /// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...

  6. c# 获取指定目录下的所有文件并显示在网页上

    参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...

  7. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

  8. PHP 获取指定目录下所有文件(包含子目录)

    PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...

  9. TDirectory.GetFileSystemEntries获取指定目录下的目录和文件

    使用函数: System.IOUtils.TDirectory.GetFileSystemEntries 所有重载: class function GetFileSystemEntries(const ...

随机推荐

  1. 动手搭建第一个小程序音视频Demo

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起 ...

  2. [Spark内核] 第37课:Task执行内幕与结果处理解密

    本课主题 Task执行内幕与结果处理解密 引言 这一章我们主要关心的是 Task 是怎样被计算的以及结果是怎么被处理的 了解 Task 是怎样被计算的以及结果是怎么被处理的 Task 执行原理流程图 ...

  3. delphi用webservice

    delphi的webservice开发. 一.在已有的项目中,调用外部的webservice 1.根据向导建webservice,在项目中引入“WSDL Importer".假设引入后生成的 ...

  4. 【最大流ISAP】洛谷P3376模板题

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  5. gitignore样例解析

    # 这是注释行 -- 被忽略 *.a # 忽略所有以 .a 为扩展名的文件 !lib.a # 但是lib.a 文件或目录不要忽略,即使前面设置了对*.a的忽略 /TODO # 只忽略此目录下的TODO ...

  6. javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

    前言 今天一个朋友让我帮他做一下tomcat的https配置,中间遇到了标题中这个错误,因此记录了一下过程,服务器.域名.证书.tomcat都已经准备好,就是需要配置一下即可,用的是阿里云的证书服务, ...

  7. Java中组合 设计技巧 实例

    关于组合 和 集成 先放两篇文章:这两篇文章写的太好了. http://blog.csdn.net/u013905744/article/details/51752044    Java的组合(持有对 ...

  8. 解析库-beautifulsoup模块

    # -*- coding: utf-8 -*- from bs4 import BeautifulSoup # 安装:pip install beautifulsoup4 # Beautiful So ...

  9. Codeforces 842B Gleb And Pizza【几何,水】

    B. Gleb And Pizza time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...

  10. bzoj 3065: 带插入区间K小值(分块)

    Description 从前有n只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力a[i].跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴.这时跳蚤国王决定理性愉悦一下,查询区间k小值.他每次向它 ...