我有一个具有Azure帐户,并且具有不同的资源组和不同的虚拟机的不同订阅。我想知道如何确定哪些未使用。例如,使用Powershell脚本检查用户启动或使用虚拟机的最后日期。
答案 0 :(得分:1)
PowerShell方法
在PowerShell中,您可以使用以下命令查询VM API。
您要查看配置状态和时间以及运行状态:
Connect-AzureRmAccount
Get-AzureRmVm | Get-AzureRmVm -Status | select ResourceGroupName, Name, @{n="Provisioned Time"; e={$_.Statuses[0].Time}}, @{n="Provisioned Status"; e={$_.Statuses[0].DisplayStatus}}, @{n="Running Status"; e={$_.Statuses[1].DisplayStatus}}
这将给出以下输出
ResourceGroupName : RG-Name
Name : VM-Name
Provisioned Time : 27/06/2018 19:06:39
Provisioned Status : Provisioning succeeded
Running Status : VM deallocated
ResourceGroupName : RG-Name1
Name : VM-Name1
Provisioned Time : 27/06/2018 19:06:39
Provisioned Status : Provisioning succeeded
Running Status : VM running
REST API方法
在PowerShell之外,您可以使用几个API调用相对轻松地做到这一点:
使用VM API获取所有VM的列表
https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/listall
然后调用Instance View API检索虚拟机的最新已知实例状态
https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/instanceview#instanceviewstatus
这将为您提供与上述PowerShell方法中相同的状态集。 InstanceViewStatus
包含计算机的最后状态的Status
和Time
。
这是我的其中一个VM的返回响应的状态部分的示例JSON:
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "2017-06-15T13:59:26.8578303+00:00"
},
{
"code": "PowerState/running",
"level": "Info",
"displayStatus": "VM running"
}
]
答案 1 :(得分:0)
据我所知,您可以通过资源组一个一个地检查VM状态。或一个订阅中的所有VM状态。但是,并非所有虚拟机都属于您。因此,我建议您逐一检查属于您的资源组。以及如下所示的PowerShell脚本:
# connect to Azure with your account
Connect-AzureRmAccount
# get all the subscriptions of yours in this account
Get-AzureRmSubscription
# select which subscription you want to check
Select-AzureRmSubscription -SubscriptionId yourSubscriptionId
# get the power status of the vm in one resource group
Get-AzureRmVM -ResourceGroupName yourResourceGroupName -Status
有关更多详细信息,请参见Get-AzureRmVM
。
答案 2 :(得分:0)
在Azure资源图资源管理器中运行查询:
Resources
| project name, location,
PowerState=tostring(properties.extended.instanceView.powerState.code), type
| where type =~ 'Microsoft.Compute/virtualMachines'
| order by name desc