다음을 통해 공유


PowerShell을 사용한 계획된 유지 관리 처리

적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합 ✔️ 균일한 확장 집합

또한 Azure PowerShell을 사용하여 VM의 유지 관리 작업이 예약된 시기를 볼 수 있습니다. 계획된 유지 관리 정보는 -status 매개 변수를 사용하는 경우 Get-AzVM cmdlet에서 확인할 수 있습니다.

유지 관리 정보는 계획된 유지 관리가 있는 경우에만 반환됩니다. VM에 영향을 미치는 유지 관리가 예약되지 않은 경우 cmdlet은 유지 관리 정보를 반환하지 않습니다.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

출력

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 

MaintenanceRedeployStatus로 반환되는 속성은 다음과 같습니다.

설명
IsCustomerInitiatedMaintenanceAllowed 이번에 VM에서 유지 관리를 시작할 수 있는지 여부를 나타냅니다.
PreMaintenanceWindowStartTime VM에서 유지 관리를 시작할 수 있을 때 유지 관리 셀프 서비스 기간의 시작 시간입니다.
PreMaintenanceWindowEndTime VM에서 유지 관리를 시작할 수 있을 때 유지 관리 셀프 서비스 기간의 종료 시간입니다.
MaintenanceWindowStartTime Azure가 VM에서 유지 관리를 시작하는 유지 관리 예약 기간의 시작 시간입니다.
MaintenanceWindowEndTime Azure가 VM에서 유지 관리를 시작하는 유지 관리 예약 기간의 종료 시간입니다.
LastOperationResultCode VM에서 유지 관리를 시작하는 마지막 시도의 결과입니다.

또한 Get-AzVM을 사용하고 VM을 지정하지 않고 리소스 그룹의 모든 VM에 대한 유지 관리 상태를 가져올 수 있습니다.

Get-AzVM -ResourceGroupName myResourceGroup -Status

다음 PowerShell 예시는 사용자의 구독 ID를 사용하고 유지 관리에 예약됐는지 여부를 나타내는 VM의 목록을 반환합니다.


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

PowerShell을 사용하여 VM에서 유지 관리 시작

이전 섹션의 함수 정보를 사용하여 IsCustomerInitiatedMaintenanceAllowed가 true로 설정되어 있는 경우 VM에서 유지 관리를 시작합니다.


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

클래식 배포

Important

클래식 배포 모델을 통해 만들어진 VM은 2023년 9월 1일부터 사용 중지됩니다.

Azure Service Management의 IaaS 리소스를 사용하는 경우 2023년 9월 1일까지 마이그레이션을 완료하세요. Azure Resource Manager의 다양한 기능 향상을 활용하려면 빨리 전환하는 것이 좋습니다.

자세한 내용은 2023년 9월 1일까지 IaaS 리소스를 Azure Resource Manager로 마이그레이션을 참조하세요.

클래식 배포 모델을 사용하여 배포된 레거시 VM이 아직 있는 경우 PowerShell을 사용하여 VM을 쿼리하고 유지 관리를 시작할 수 있습니다.

VM에 대한 유지 관리 상태를 가져오려면 다음을 입력합니다.

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

클래식 VM에서 유지 관리를 시작하려면 다음을 입력합니다.

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

다음 단계

Azure CLI 또는 포털을 사용하여 계획된 유지 관리를 처리할 수도 있습니다.