用于停止和启动Azure VM的Powershell

时间:2018-03-07 15:50:42

标签: powershell azure azure-automation

我在Windows Server(x64)"上创建了一个" Visual Studio Enterprise 2017(最新版本)。虚拟机。我想通过Powershell启动和停止这台机器。

#Login
Add-AzureAccount

#Enterprize subscription. Id can be found by seraching for subsription in the portal
Select-AzureSubscription -SubscriptionId xxxxxx-xxxe-xxxx5-8xxxx-e2xxxxxxxx1c

#Should list VMs but returns nothing
Get-AzureVM 

#Asks for ServiceName that I cannot find 
Start-AzureVM -Name NigelsPcWUS        

如何找到与我的VM对应的ServiceName?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

我的猜测是您使用Azure资源管理(ARM)模型创建虚拟机。上面的PowerShell脚本使用较旧的Azure服务管理(ASM)模型。

上述脚本需要进行一些修改才能使用ARM模型:

#Login using the ARM model
Login-AzureRmAccount

#Select your subscription if you got multiple
Select-AzureRmSubscription -SubscriptionId xxxxxx-xxxe-xxxx5-8xxxx-e2xxxxxxxx1c

#Get a list of exisiting VMs
Get-AzureRmVM

#Start a vm named 'linux' inside resource group 'lab-rg'
Start-AzureRmVM -Name linux -ResourceGroupName lab-rg

如果您没有安装AzureRM PowerShell命令并且运行的是Windows 10,则可以通过运行

轻松安装它们。
Install-Module AzureRM

答案 1 :(得分:1)

ServiceName指定包含要关闭的虚拟机的Azure服务的名称。

如果您通过经典模型部署了VM,那么您将获得ServiceName

从描述中看起来,您已经通过ARM模型创建了VM。 我建议您使用Get-AzureRmVM cmdlet列出VM。

要启动VM,请使用以下PowerShell cmdlet。

Start-AzureRmVM -ResourceGroupName "YourResourceGroupName" -Name "YourVirtualMachineName"

要停止VM,请使用以下PowerShell cmdlet。

Stop-AzureRmVM -ResourceGroupName "ResourceGroupName" -Name "VirtualMachineName"