使用Azure Powershell关闭在没有Cloud Service Name的情况下创建的VM

时间:2016-03-15 15:20:00

标签: powershell azure virtual-machine

这不是this question的副本,因为在MS做出改变后向兼容性后,该解决方案不再有效。

我需要以编程方式(通过Azure Powershell)启动/停止以编程方式创建的VM(通过Azure Powershell)。文档说我需要提供一个"服务名称",但我找不到任何关于如何从VM获取它的参考:

Stop-AzureVM -ServiceName $hostname -Name $hostname
Start-AzureVM -ServiceName $hostname -Name $hostname

文档还建议使用Get-AzureService和(我认为)允许我提供个人资料而不是服务。但是,使用Select-AzureRmProfile我只能获得Microsoft.Azure.Commands.Profile.Models.PSAzureProfile,但Get-AzureService需要Microsoft.Azure.Commands.Profile.Models.PSAzureSMProfile。我被卡住了。

帮助?

2 个答案:

答案 0 :(得分:3)

Azure中有两个控制平面:Azure服务管理(ASM)和Azure资源管理器(ARM)。使用ASM创建的所有VM都具有云服务名称和VM名称。我怀疑您创建了一个ARM VM,其资源组名称取代了云服务名称。 ARM PowerShell cmdlet在名称中都使用AzureRm而不是Azure。

在ARM中,您使用以下内容:

Start-AzureRmVM -Name $ vmName -ResourceGroupName $ resourceGroupName

Stop-AzureRmVM -Name $ vmName -ResourceGroupName $ resourceGroupName

答案 1 :(得分:1)

如果您知道名称而不是服务名称,那么......

Get-AzureVM | Where {$_.Name -eq "VMNAME"} | Stop-AzureVM

但这完全取决于你是否拥有VM的名称而不是服务名称,你的问题没有说明,所以我假设你在这里做! :d

但是,如果这不起作用,请评论你对VM的详细信息,看看我能做些什么。