首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取运行VM的列表并停止它们的Powershell脚本

获取运行VM的列表并停止它们的Powershell脚本
EN

Stack Overflow用户
提问于 2021-11-28 16:41:14
回答 1查看 1.2K关注 0票数 0

正在使用此脚本,但它收集所有vms并逐个停止,即使VM已经处于停止状态。

代码语言:javascript
复制
$vm = Get-Azvm 

foreach($vms in $vm)

{
    
    $resource = Get-Azvm | where {$_.Statuses -eq "Running"}

    if($resource -ne $null)
    {  
        Write-Output "Stopping virtual machine..." + $vms
        Stop-AzVM -ResourceGroupName $resource.ResourceGroupName -Name $vms -Force
    }   
    else
    {
        Write-output "Virtual machine not found:" + $vms
    }
}
EN

Stack Overflow用户

回答已采纳

发布于 2021-11-29 05:02:39

基于上述共享需求,我们修改了PowerShell脚本,以检查虚拟机状态(是否正在运行),如果虚拟机正在运行,则需要使用stop-Azvm cmdlet停止它。

在本地环境中检查以下脚本(测试时,我们将资源组标志传递给Get-Azvm ),运行良好。

代码语言:javascript
复制
$vm = Get-Azvm -Status

foreach($vms in $vm)
{
   $statuscheck = Get-AzVM -ResourceGroupName $vms.ResourceGroupName -Name $vms.Name -Status 
    if($statuscheck.Statuses.DisplayStatus[1] -eq "VM running")
    {  

        Write-Output "Stopping virtual machine...$($vms.Name)"

        Stop-AzVM -ResourceGroupName $vms.ResourceGroupName -Name $vms.Name -Force
    }   
    else
    {
        Write-output "Virtual machine $($vms.Name) is already in stopped state"
    }
}

下面是供参考的示例输出:

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70145486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档