Azure Powershell获取指定订阅下的虚拟机信息(ASM)
为方便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账号下的所有订阅进行统计,可参考如下脚本的遍历订阅方法,参考链接:
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)的更多相关文章
- Azure Powershell获取指定订阅下的虚拟机信息(ARM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureRmAccount -EnvironmentName AzureCh ...
- [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录
原文:http://blog.csdn.net/vchao13/article/details/6200255 1.获取指定目录下所有文件信息 /// <summary> /// 返回指定 ...
- C# 获取指定目录下所有文件信息
/// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...
- 获取指定订阅下所有Azure ARM虚拟机配置(CPU核数,内存大小,磁盘信息)的使用情况
脚本内容: <# .SYNOPSIS This script grab all ARM VM VHD file in the subscription and caculate VHD size ...
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
/// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...
- c# 获取指定目录下的所有文件并显示在网页上
参考文献: FileInfo 的使用 https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
- PHP 获取指定目录下所有文件(包含子目录)
PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...
- TDirectory.GetFileSystemEntries获取指定目录下的目录和文件
使用函数: System.IOUtils.TDirectory.GetFileSystemEntries 所有重载: class function GetFileSystemEntries(const ...
随机推荐
- python基础(六)dict字典和文件操作open
字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...
- 记一个CRenderTarget中的BUG及解决办法
转载请注明出处:http://www.cnblogs.com/Ray1024 一.问题描述 在MFC中使用Direct2D有现成的方法,在Visual Studio 2010 SP1及以上环境中MFC ...
- 编码与模式------《Designing Data-Intensive Applications》读书笔记5
进入到第四章了,本篇主要聊的点是编码(也就是序列化)与代码升级的一些场景,来梳理存储之中涉及到的编解码的流程.目前主流的编解码便是来自Apache的Avro,来自Facebook的Thrift与Goo ...
- 工作整理: python报表系统常见错误整理
1.一般收不到邮件是因为配置文件邮箱写错 2.如果报表数据不对,看数据插入的时候是否再次写入产生冲突 3.如果收不到报表某些组别的excel查看组别名称是否匹配正确,是否匹配成功,不成功无法发送
- Python 集合 深浅copy
一,集合. 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...
- IdentityServer Topics(6)- Windows身份验证
在支持的平台上,您可以让IdentityServer使用Windows身份验证(例如,对Active Directory)对用户进行身份验证. 当您使用以下身份托管IdentityServer时,当前 ...
- linux数据库环境搭建
linux数据库源码下载地址:http://www3.sqlite.org/download.html 下载完成之后,把源码放到linux下的目录,我们一步一步来搭建环境: 1.使用命令解压源码包 u ...
- cs231n spring 2017 lecture14 Reinforcement Learning 听课笔记
(没太听明白,下次重新听) 1. 增强学习 有一个 Agent 和 Environment 交互.在 t 时刻,Agent 获知状态是 st,做出动作是 at:Environment 一方面给出 Re ...
- Oracle实战笔记(第二天)
导读 今日主要内容:表管理.表操作(增删改查).表查询(简单查询&复杂查询).创建数据库. 一.表管理 1.表命名规范 必须以字母开头: 长度不能超过30个字符: 不能使用Oracle保留字: ...
- HDU 1874 畅通工程续【Floyd算法实现】
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...