Behandeln von geplanten Wartungen mithilfe von PowerShell

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Sie können mithilfe von Azure PowerShell ermitteln, wann die Wartung für VMs geplant ist. Informationen zur geplanten Wartung können mit dem Cmdlet Get-AzVM unter Verwendung des Parameters -status ermittelt werden.

Wartungsinformationen werden nur zurückgegeben, wenn eine Wartung geplant ist. Ist keine Wartung für den virtuellen Computer geplant, gibt das Cmdlet keine Wartungsinformationen zurück.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Output

MaintenanceRedeployStatus               : 
  IsCustomerInitiatedMaintenanceAllowed : True
  PreMaintenanceWindowStartTime         : 5/14/2018 12:30:00 PM
  PreMaintenanceWindowEndTime           : 5/19/2018 12:30:00 PM
  MaintenanceWindowStartTime            : 5/21/2018 4:30:00 PM
  MaintenanceWindowEndTime              : 6/4/2018 4:30
  LastOperationResultCode               : None 

Unter „MaintenanceRedeployStatus“ werden folgende Eigenschaften zurückgegeben:

Wert BESCHREIBUNG
IsCustomerInitiatedMaintenanceAllowed Gibt an, ob Sie zum aktuellen Zeitpunkt die Wartung für den virtuellen Computer starten können.
PreMaintenanceWindowStartTime Der Anfang des Self-Service-Wartungszeitfensters, in dem Sie die Wartung für Ihren virtuellen Computer initiieren können.
PreMaintenanceWindowEndTime Das Ende des Self-Service-Wartungszeitfensters, in dem Sie die Wartung für Ihren virtuellen Computer initiieren können.
MaintenanceWindowStartTime Der Anfang der geplanten Wartung, zu dem Azure die Wartung für Ihren virtuellen Computer initiiert
MaintenanceWindowEndTime Das Ende des geplanten Wartungszeitfensters, in dem Azure die Wartung für Ihren virtuellen Computer initiiert
LastOperationResultCode Das Ergebnis des letzten Wartungsinitiierungsversuchs für den virtuellen Computer.

Sie können auch den Wartungsstatus für alle virtuellen Computer in einer Ressourcengruppe abrufen. Verwenden Sie hierzu Get-AzVM ohne Angabe eines virtuellen Computers.

Get-AzVM -ResourceGroupName myResourceGroup -Status

Das folgende PowerShell-Beispiel übernimmt Ihre Abonnement-ID und gibt eine Liste mit VMs zurück, die darauf hindeuten, dass sie für eine Wartung geplant sind.


function MaintenanceIterator {
  param (
    $SubscriptionId
  )
  
  Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null

  $rgList = Get-AzResourceGroup
  foreach ($rg in $rgList) {
    $vmList = Get-AzVM -ResourceGroupName $rg.ResourceGroupName 
    foreach ($vm in $vmList) {
      $vmDetails = Get-AzVM -ResourceGroupName $rg.ResourceGroupName -Name $vm.Name -Status
      [pscustomobject]@{
        Name                                  = $vmDetails.Name
        ResourceGroupName                     = $rg.ResourceGroupName
        IsCustomerInitiatedMaintenanceAllowed = [bool]$vmDetails.MaintenanceRedeployStatus.IsCustomerInitiatedMaintenanceAllowed
        LastOperationMessage                  = $vmDetails.MaintenanceRedeployStatus.LastOperationMessage
      }
    }
  }
}

Starten der Wartung für Ihren virtuellen Computer mithilfe von PowerShell

Der folgende Befehl enthält Informationen aus der Funktion des vorherigen Abschnitts und startet die Wartung für einen virtuellen Computer, sofern IsCustomerInitiatedMaintenanceAllowed auf „true“ festgelegt ist.


MaintenanceIterator -SubscriptionId <Subscription ID> |
    Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
        Restart-AzVM -PerformMaintenance

Klassische Bereitstellungen

Wichtig

VMs, die mit dem klassischen Bereitstellungsmodell erstellt wurden, laufen am 1. September 2023 aus.

Wenn Sie IaaS-Ressourcen von Azure Service Management verwenden, schließen Sie bitte Ihre Migration bis zum 1. September 2023 ab. Es wird empfohlen, den Wechsel früher vorzunehmen, um die vielen verbesserten Features in Azure Resource Manager zu nutzen.

Weitere Informationen finden Sie unter Migrieren Ihrer IaaS-Ressourcen zu Azure Ressource Manager bis zum 1. September 2023.

Wenn Sie ältere virtuelle Computer besitzen, die mit dem klassischen Bereitstellungsmodell bereitgestellt wurden, können Sie mit PowerShell virtuelle Computer abfragen und die Wartung initiieren.

Geben Sie zum Abrufen des Wartungsstatus eines virtuellen Computers Folgendes ein:

Get-AzureVM -ServiceName <Service name> -Name <VM name>

Geben Sie zum Starten der Wartung auf dem klassischen virtuellen Computer Folgendes ein:

Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>

Nächste Schritte

Sie können die geplante Wartung auch mithilfe der Azure CLI oder mit dem Portal vornehmen.