我使用Azure资源管理器来创建具有几个虚拟机和其他资源的资源组。Azure资源管理器虚拟机状态
如何使用Azure资源管理器(ARM)将已设置的VM作为资源组中的资源读取VM状态?
拥有经典的虚拟机,旧脚本使用:
$vm.InstanceStatus
然而,当我切换到Azure的资源管理模式
Switch-AzureMode AzureResourceManager
VM对象不承认.InstanceStatus为有效变量。
我使用Azure资源管理器来创建具有几个虚拟机和其他资源的资源组。Azure资源管理器虚拟机状态
如何使用Azure资源管理器(ARM)将已设置的VM作为资源组中的资源读取VM状态?
拥有经典的虚拟机,旧脚本使用:
$vm.InstanceStatus
然而,当我切换到Azure的资源管理模式
Switch-AzureMode AzureResourceManager
VM对象不承认.InstanceStatus为有效变量。
尝试以下操作:
Get-AzureVM -ResourceGroupName <RGName> -Name <VMName> -Status
在结果中,你应该看到的状态,并在这个你应该看到一个看起来像“将PowerState /运行”等
希望这有助于! :)
您可以阅读使用下面的PowerShell代码下ARM供应的天青VM的配置状态:
$vm = Get-AzureRmVM -Name <VMName> -ResourceGroupName <ResourceGroupName>
$vm.ProvisioningState
这与最新的Azure的PowerShell的版本(1.0.1)测试其释放2015年十一月
虚拟机的供应状态仅告诉您供应虚拟机的状态是什么,而不是它正在运行,已停止等。 – Erica
,你正在寻找的可能是这个样子的PowerShell的一行代码:
Get-AzureRmVM -ResourceGroupName "MyRGName" -Name "MyVmName" -Status | `
select -ExpandProperty Statuses | `
?{ $_.Code -match "PowerState" } | `
select -ExpandProperty DisplayStatus
这将显示VM deallocated
如果虚拟机停止运行或者VM running
运行。
要获得Get-AzureRmVm
cmdlet的保持,运行以下命令:
Install-Package AzureRM
Install-AzureRM
您好我提供了一个脚本能够做到这一点得益于上面的例子。
https://miteshc.wordpress.com/2016/02/24/automation-runbook-shutdown-azurearmvm-with-tags/
提取
$资源组= “RG_Name” $虚拟机=查找-AzureRmResource -ResourceGroupNameContains $资源组| Where-Object {$_.Tags.Name-eq "Autoshutdown" -and $_.Tags.Value -eq "Yes"} Foreach ($VM in $VMs) { $VMStatus = Get-AzureRmVM -ResourceGroupName $ResourceGroup -Name $vm.Name -Status |
select -ExpandProperty状态| ?{$ _。代码 - 匹配“PowerState”} |选择-ExpandProperty displaystatus
if($VMStatus -eq "VM Running")
{
Write-Output "status of" $vm.Name "is" """$VMStatus"""
Stop-AzureRmVM -ResourceGroupName $ResourceGroup -Name $vm.Name -Force
}
else
{
Write-Output "status of" $vm.Name "is" """$VMStatus"""
}
}
谢谢! Mitesh
我搬到了AzureRM。最初我想要一种直接的方式来获取状态作为变量,以便在脚本中使用,而不是只能在VM定义中读取它。不管怎么说,还是要谢谢你。我希望你的回答对别人有帮助。谢谢。 –