如何使用 PowerShell 获取 Azure VM 活动日志?

powershellmicrosoft technologiessoftware & coding更新于 2026/2/12 20:22:17

要使用 PowerShell 获取 Azure VM 活动日志,我们需要使用 Get-AzLog 命令。运行 AZ 命令之前,请确保您已使用 ConnectAzAccount 和订阅 Set-AzContext 连接到 Azure 帐户。

我们有以下 TestVM,我们需要检索活动日志,并且需要它的资源 ID。我们将使用以下命令获取资源 ID:

PS C:\> $vm = Get-AzVM -VMName TestVM
PS C:\> $vm.Id

我们需要在 Get-AzLog 命令中使用此 ID 来检索活动日志。

PS C:\> Get-AzLog -ResourceId $vm.Id

它将提供该特定资源组的所有 Azure 事件,您可以查看属性的数量。如果我们只需要检索门户上 Azure 活动日志中显示的属性,可以使用以下命令。

(Get-AzLog -ResourceId $vm.Id) |选择
@{N="VMName";E={$vm.Name}},ResourceGroupName,
@{N="Message";E={$_.OperationName.LocalizedValue}}, Level, Caller, EventTimestamp |
ft -AutoSize

您可以使用特定级别过滤事件。例如,要仅过滤警告日志,

(Get-AzLog -ResourceId $vm.Id) | where{$_.Level -eq "Warning"} | Select
@{N='VMName';E={$vm.Name}},ResourceGroupName,
@{N='Message';E={$_.OperationName.LocalizedValue}},Level, Caller, EventTimestamp

您可以添加开始和结束时间,如下所示。

Get-AzLog -ResourceId $vm.Id -StartTime 2021-03-01 -EndTime
2021-05-25 -MaxRecord 20 | `
   Select @{N='VMName';E={$vm.Name}},ResourceGroupName,
@{N='Message';E={$_.OperationName.LocalizedValue}},Level,
Caller, EventTimestamp

相关文章