Obsługa planowanej konserwacji przy użyciu programu PowerShell

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania

Możesz użyć Azure PowerShell, aby zobaczyć, kiedy maszyny wirtualne są zaplanowane na konserwację. Informacje o planowanej konserwacji są dostępne w poleceniu cmdlet Get-AzVM podczas korzystania z parametru -status .

Informacje o konserwacji są zwracane tylko wtedy, gdy planowana jest konserwacja. Jeśli nie zaplanowano konserwacji, która ma wpływ na maszynę wirtualną, polecenie cmdlet nie zwraca żadnych informacji o konserwacji.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Dane wyjściowe

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 

Następujące właściwości są zwracane w obszarze MaintenanceRedeployStatus:

Wartość Opis
IsCustomerInitiatedMaintenanceAllowed Wskazuje, czy w tej chwili można rozpocząć konserwację maszyny wirtualnej
PreMaintenanceWindowStartTime Początek okna samoobsługi konserwacji, gdy można zainicjować konserwację na maszynie wirtualnej
PreMaintenanceWindowEndTime Koniec okna samoobsługi konserwacji, gdy można zainicjować konserwację na maszynie wirtualnej
KonserwacjaWindowStartTime Początek zaplanowanej konserwacji, w której platforma Azure inicjuje konserwację maszyny wirtualnej
KonserwacjaWindowEndTime Koniec zaplanowanego okna konserwacji, w którym platforma Azure inicjuje konserwację maszyny wirtualnej
LastOperationResultCode Wynik ostatniej próby zainicjowania konserwacji na maszynie wirtualnej

Stan konserwacji dla wszystkich maszyn wirtualnych w grupie zasobów można również uzyskać przy użyciu polecenia Get-AzVM , a nie określania maszyny wirtualnej.

Get-AzVM -ResourceGroupName myResourceGroup -Status

Poniższy przykład programu PowerShell przyjmuje identyfikator subskrypcji i zwraca listę maszyn wirtualnych wskazujących, czy są zaplanowane na konserwację.


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

Rozpoczynanie konserwacji maszyny wirtualnej przy użyciu programu PowerShell

Korzystając z informacji z funkcji w poprzedniej sekcji, w przypadku ustawienia IsCustomerInitiatedMaintenanceAllowed zostanie ustawiona wartość true.


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

Klasyczne wdrożenia

Ważne

Maszyny wirtualne utworzone za pośrednictwem klasycznego modelu wdrażania zostaną wycofane 1 września 2023 r.

Jeśli używasz zasobów IaaS z usługi Azure Service Management, wykonaj migrację do 1 września 2023 r. Zachęcamy do przejścia wcześniej, aby skorzystać z wielu ulepszeń funkcji w usłudze Azure Resource Manager.

Aby uzyskać więcej informacji, zobacz Migrowanie zasobów IaaS do usługi Azure Resource Manager do 1 września 2023 r.

Jeśli nadal masz starsze maszyny wirtualne, które zostały wdrożone przy użyciu klasycznego modelu wdrażania, możesz użyć programu PowerShell do wykonywania zapytań dotyczących maszyn wirtualnych i inicjowania konserwacji.

Aby uzyskać stan konserwacji maszyny wirtualnej, wpisz:

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

Aby rozpocząć konserwację klasycznej maszyny wirtualnej, wpisz:

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

Następne kroki

Planowaną konserwację można również obsługiwać przy użyciu interfejsu wiersza polecenia platformy Azure lub portalu.