簡體   English   中英

Powershell 腳本獲取正在運行的虛擬機列表並停止它們

[英]Powershell script to get list of Running VM's and stop them

我正在使用這個腳本,但它收集所有的虛擬機並一一停止它,即使虛擬機已經停止 state

$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
    }
}

基於上述共享需求,我們修改了 PowerShell 腳本來檢查虛擬機狀態(是否正在運行),如果虛擬機正在運行,您需要使用stop-Azvm cmdlet 將其停止。

在我們的本地環境中檢查了以下腳本(在測試時我們將資源組標志傳遞給Get-Azvm ),它工作正常。

$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"
    }
}

以下是樣品 output 供參考:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM