smsagent.blog
Search…
Get-AzSubscriptionActivityLog
Gets Activity Log events from an Azure subscription with filtering options.

Syntax

Get-AzSubscriptionActivityLog
[-TenantId <String>]
[-SubscriptionId <String>]
[-TimespanHours <Int>]
[-IncludeProperties <Switch>]
[-IncludeListAndGetOperations <Switch>]
[-IdentityType <String[]>]
[-Level <String[]>]
[-Category <String[]>]
[-Caller <String[]>]
[-ResourceGroupName <String[]>]
[-ResourceProviderName <String[]>]
[-ResourceIdMatch <String>]
[-ResourceType <String[]>]
[-OperationName <String[]>]
[-Status <String[]>]

Description

Get-AzSubscriptionActivityLog retrieves events from the Activity Log in an Azure subscription using the REST API. Caller identities are translated to their friendly names from their GUIDs. Requires the Az.Accounts module for authentication in the current context.
Note by default, operations with 'List' or 'Get token' in the name are excluded from the results as these can be numerous. To include them, use the -IncludeListAndGetOperations parameter

Permissions

Requires at least a Reader role in the Azure subscription.
Requires Directory.Read.All permission in Microsoft Graph.

Install

Install the script from the PowerShell gallery:
Install-Script Get-AzSubscriptionActivityLog -Force

Connect to Azure

if you haven't already authenticated to Azure, run the Connect-AzAccount cmdlet first, eg
Connect-AzAccount -Subscription "e7b7fedf-90ab-4b0c-913b-a08ccd060d9a"

Examples

Example 1 - Get activity log events for the last 12 hours

Get-AzSubscriptionActivityLog -TenantId 'a84894e7-90hb-40e3-9783-320d0334b3cc' -SubscriptionID 'e7b7fedf-1d1d-4b0c-913b-a08ccd060d9a' -TimespanHours 12
This command gets activity logs from the specified tenant and subscription over the last 12 hours.

Example 2 - Get activity log events for a specific identity type

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -IdentityType ManagedIdentity
This command gets events where the caller type is a managed identity.

Example 3 - Get activity log events for specific categories

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -Category 'Policy','Security'
This command gets events with a category of Policy or Security.

Example 4 - Get activity log events for specific callers

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -Caller 'Windows 365','Microsoft.RecoveryServices'
This command gets events where the calling identity is either Windows 365 or Microsoft.RecoveryServices. You could also specify the displayname of a managed identity or the UPN of a AAD user.

Example 5 - Get activity log events with a specific severity

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -Level Error,Warning
This command gets events with a severity level of either Error or Warning.

Example 6 - Get activity log events for specific resource groups

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -ResourceGroupName 'rg-01','rg-02'
This command gets events from the resource groups rg-01 and rg-02.

Example 7 - Get activity log events for specific resource providers

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -ResourceProviderName 'Microsoft.Network','Microsoft.VirtualMachineImages'
This command gets events where the resource provider is either Microsoft.Network or Microsoft.VirtualMachineImages

Example 8 - Get activity log events for a specific resource

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -ResourceIdMatch "VM001"
This command gets events where the resourceId matches the string VM001, which in this case is a virtual machine name. This could be any part of the resourceId name after the resource provider and supports a single string only.

Example 9 - Get activity log events for a specific resource type

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -ResourceType 'MICROSOFT.RECOVERYSERVICES/vaults','Microsoft.Compute/virtualMachines'
This command gets events where the resource type is either MICROSOFT.RECOVERYSERVICES/vaults or Microsoft.Compute/virtualMachines

Example 10 - Get activity log events for specific operations

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -OperationName 'Start Virtual Machine','Backup Protected Item'
This command gets events where the operation name is either Start Virtual Machine or Backup Protected Item

Example 11 - Get activity log events with a specific status

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -Status Failed,Accepted
This command gets events with a status of Failed or Accepted.

Example 12 - Get activity log events including List and Get token operations

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -IncludeListAndGetOperations
This command gets all events including any List or Get token operations, which are excluded by default as they can be numerous.

Example 13 - Get activity logs including additional properties

Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -IncludeProperties
This command gets events and includes any additional properties that are attached to the event.

Example 14 - View the additional properties for an event

$ActivityLog = Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID -IncludeProperties
$ActivityLog[0].properties | Format-List
This command retrieves the additional properties for the first event in the array, formatted as a list.

Example 15 - Group and count events by Operation

$ActivityLog = Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID
$ActivityLog | Group-Object -Property operationName -NoElement | Sort-Object -Property Count -Descending | Format-Table -AutoSize
This command groups events by their operationName and displays the counts of each operation with the most numerous first

Example 16 - Group and count events by category

$ActivityLog = Get-AzSubscriptionActivityLog -TenantId $TenantId -SubscriptionId $SubscriptionID
$ActivityLog | Group-Object -Property category -NoElement | Sort-Object -Property Count -Descending | Format-Table -AutoSize
This command groups events by their category and displays the counts of each category with the most numerous first.

Parameters

-TenantId
-SubscriptionId
TimespanHours
IncludeProperties
IncludeListAndGetOperations
IdentityType
Level
Category
Caller
ResourceGroupName
ResourceProviderName
ResourceIdMatch
ResourceType
OperationName
Status
Last modified 14d ago
Copy link
On this page
Syntax
Description
Permissions
Install
Connect to Azure
Examples
Example 1 - Get activity log events for the last 12 hours
Example 2 - Get activity log events for a specific identity type
Example 3 - Get activity log events for specific categories
Example 4 - Get activity log events for specific callers
Example 5 - Get activity log events with a specific severity
Example 6 - Get activity log events for specific resource groups
Example 7 - Get activity log events for specific resource providers
Example 8 - Get activity log events for a specific resource
Example 9 - Get activity log events for a specific resource type
Example 10 - Get activity log events for specific operations
Example 11 - Get activity log events with a specific status
Example 12 - Get activity log events including List and Get token operations
Example 13 - Get activity logs including additional properties
Example 14 - View the additional properties for an event
Example 15 - Group and count events by Operation
Example 16 - Group and count events by category
Parameters