Udostępnij za pośrednictwem


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ć programu Azure PowerShell, aby sprawdzić, kiedy maszyny wirtualne są zaplanowane do konserwacji. 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

Wyjście

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, kiedy można zainicjować konserwację maszyny wirtualnej
PreMaintenanceWindowEndTime Koniec okna samoobsługi konserwacji, gdy można zainicjować konserwację maszyny wirtualnej
KonserwacjaWindowStartTime Początek konserwacji zaplanowanej na platformie 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

Możesz również uzyskać stan konserwacji dla wszystkich maszyn wirtualnych w grupie zasobów 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 do konserwacji.


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

Uruchamianie konserwacji maszyny wirtualnej przy użyciu programu PowerShell

Korzystając z informacji z funkcji w poprzedniej sekcji, następujące rozpoczyna konserwację na maszynie wirtualnej, jeśli właściwość IsCustomerInitiatedMaintenanceAllowed jest ustawiona na wartość true.


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

Klasyczne wdrożenia

Ważne

Maszyny wirtualne utworzone za pomocą 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ń o maszyny wirtualne 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łużyć przy użyciu interfejsu wiersza polecenia platformy Azure lub portalu.