1

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

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

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

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

4

2 回答 2

2

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

调用 Start-AzureVM

并行操作,见门户

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

枚举服务示例:

Get-AzureService | Select ServiceName

现在做点什么,而不是仅仅列出服务:

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

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

于 2013-12-14T20:31:32.247 回答
0

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

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

Start-AzureVM -ServiceName "sa12345" 将启动服务名称 sa12345 下的所有 azure vm

于 2015-03-11T07:51:17.550 回答