使用 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 下傳回的內容:
值 | Description |
---|---|
IsCustomerInitiatedMaintenanceAllowed | 指出您目前是否可以在 VM 上開始維修 |
PreMaintenanceWindowStartTime | 維修自助期間的開始,此時您可以在 VM 上起始維修 |
PreMaintenanceWindowEndTime | 維修自助期間的結束,此時您可以在 VM 上起始維修 |
MaintenanceWindowStartTime | 排定維護開始,此時 Azure 會在您的虛擬機器上起始維護 |
MaintenanceWindowEndTime | 排定維護期間結束,此時 Azure 會在您的虛擬機器上停止維護 |
LastOperationResultCode | 前次嘗試在 VM 上起始維修的結果 |
您也可以使用 Get-AzVM 而不指定 VM 來取得資源群組中所有 VM 的維修狀態。
Get-AzVM -ResourceGroupName myResourceGroup -Status
下列 PowerShell 範例會採用您的訂用帳戶識別碼,並傳回 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
傳統部署
重要
透過傳統部署模型建立的 VM 將於 2023 年 9 月 1 日淘汰。
如果您使用來自 Azure 服務管理的 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>