适用于:✔️ 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 |
|---|---|
| 客户启动维护是否被允许 | 指示此时是否可以在 VM 上启动维护 |
| PreMaintenanceWindowStartTime(维护窗口开始时间之前) | 可以在 VM 上启动维护的维护自助服务窗口起始时间 |
| 维护窗口结束时间前 | 当虚拟机的维护自助服务窗口结束时,您可以进行维护。 |
| 维护窗口开始时间 | 计划的维护开始,这是指 Azure 在虚拟机上启动维护的时间。 |
| 维护窗口结束时间 (MaintenanceWindowEndTime) | Azure 发起对 VM 进行维护的计划时段结束时间 |
| 最后操作结果代码 | 上次尝试在 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
经典部署
重要
通过经典部署模型创建的 VM 将于 2023 年 9 月 1 日停用。
如果从 Azure 服务管理中使用 IaaS 资源,请在 2023 年 9 月 1 日前完成迁移。 我们建议你尽快进行切换,以利用 Azure 资源管理器中的许多增强功能。
如果仍有使用经典部署模型部署的旧 VM,可以使用 PowerShell 查询 VM 并启动维护。
若要获取 VM 的维护状态,请键入:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
若要在经典 VM 上启动维护,请键入:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>