![](/img/trans.png)
[英]How to get ResourceId of VM script is running on in Azure with 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.