启动/停止特定订阅下的所有VM

时间:2013-12-14 19:13:22

标签: powershell azure azure-virtual-machine azure-powershell

我正在使用Azure Powershell cmdlet来启动/停止VM。

Start-AzureVM [-ServiceName] <String> [-Name] <String> [ <CommonParameters>]

Stop-AzureVM [-ServiceName] <String> [-Name] <String> [[-StayProvisioned]] [[-Force]] [ <CommonParameters>]

是否有命令启动/停止特定订阅下的所有VM而不是单个VM?如果没有,我正在寻找一个脚本来为每个VM并行多次并行运行代码。

2 个答案:

答案 0 :(得分:2)

Start-AzureVM和Stop-AzureVM现在支持通配符,允许您并行启动/并行停止同一服务名称中的任何/所有VM。在这里,您可以看到这一点,我在一个服务中并行启动了几个虚拟机:

Calling Start-AzureVM

Parallel operation, seen in portal

现在:如果您想要整个订阅中的所有虚拟机,您可以始终枚举所有服务命名空间,然后启动其中的虚拟机。这是一个例子 - 根据您的需要调整它,对于特定的数据中心等。

枚举服务的示例:

Get-AzureService | Select ServiceName

现在要做一些事情,而不仅仅是列出服务:

Get-AzureService | Foreach-Object { Start-AzureVM -ServiceName $_.ServiceName -Name "*" }

注意:我没有测试最后一个,因为我不想启动我的所有虚拟机,但是这样的东西应该适合你作为批量“在我的订阅中的每个服务中启动单个虚拟机。 “

答案 1 :(得分:0)

非常正确 - 启动 - AzureVM和Stop-AzureVM现在支持通配符,允许您并行启动/并行停止同一服务名称中的任何/所有VM。

根据问题启动/停止特定订阅下的所有VM都是不可能的。但是,可以启动/停止特定服务名称下的所有VM。

Start-AzureVM -ServiceName&#34; sa12345&#34; 将在服务名称sa12345

下启动所有azure vms