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:
Connect to Azure
if you haven't already authenticated to Azure, run the Connect-AzAccount cmdlet first, eg
Examples
Example 1 - Get activity log events for the last 12 hours
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
This command gets events where the caller type is a managed identity.
Example 3 - Get activity log events for specific categories
This command gets events with a category of Policy or Security.
Example 4 - Get activity log events for specific callers
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
This command gets events with a severity level of either Error or Warning.
Example 6 - Get activity log events for specific resource groups
This command gets events from the resource groups rg-01 and rg-02.
Example 7 - Get activity log events for specific resource providers
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
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
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
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
This command gets events with a status of Failed or Accepted.
Example 12 - Get activity log events including List and Get token operations
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
This command gets events and includes any additional properties that are attached to the event.
Example 14 - View the additional properties for an event
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
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
This command groups events by their category and displays the counts of each category with the most numerous first.
Parameters
-TenantId
Required. GUID as a String. The tenant Id for the Azure subscription.
-SubscriptionId
Required. GUID as a String. The Azure subscription Id.
TimespanHours
Integer. The number of hours past (from now) to retrieve events. Default is 6.
IncludeProperties
Switch. Use this parameter to include the additional properties for the event. Each event may have additional properties that differ depending on the event type.
IncludeListAndGetOperations
Switch. By default, operations with "List" or "Get token" in the name are excluded as they can be numerous and aren't always useful. Add this parameter if you wish to include them instead.
IdentityType
String[]. The identity type of the caller. Valid values are Application, ManagedIdentity, Service,User or $null.
Level
String[]. The event level or severity. Valid values are Informational, Warning, Error or Critical.
Category
String[]. The event category, for example Administrative, Security, Policy, Recommendation
Caller
String[]. The identity that performed the action in the event.
ResourceGroupName
String[]. The name of one or more resource groups to filter on.
ResourceProviderName
String[]. One or more resource providers to filter on, such as Microsoft.Compute or Microsoft.RecoveryServices
ResourceIdMatch
String. Use this to search for a resource by name using a match, for example a VM name or a NIC name.
ResourceType
String[]. One or more resource types to filter on, for example Microsoft.Network/networkInterfaces or Microsoft.HybridCompute/machines/extensions
OperationName
String[]. The localized values of one or more operation names, for example "Create or Update Network Interface" or "Backup Protected Item"
Status
String[]. The event status. Valid values are Accepted, Started, Succeeded, Failed.