如何使用 PowerShell 获取 Azure VM 活动日志?
要使用PowerShell获取AzureVM活动日志,我们需要使用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) | Select @{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