Issue
I'm looking for a way to list all "Diagnostic Settings"-Objects of a resource-group or subscription with the azure cli / bash. I've read the href="https://learn.microsoft.com/en-us/cli/azure/monitor/diagnostic-settings/categories?view=azure-cli-latest#az-monitor-diagnostic-settings-categories-list" rel="nofollow noreferrer">azure cli documentation which can only list diagnostic settings by resource-type.
I thought before I'll give up I'll ask the whole swarm power of stackoverflow. Maybe some guy had the same probleme and wrote a script which iterates to all resources of a subscription and list the "Diagnostic Settings"-Resources
Solution
You could always get the list of resource ids and iterate:
# list of resource ids for the subscription
resourceIds=$(az resource list --query "[].id" --output tsv)
# or filter on a specific resource group
resourceGroup="<resource group name>"
resourceIds=$(az resource list --query "[].id" --resource-group $resourceGroup --output tsv)
# iterates and print diag settings
for id in $resourceIds
do
az monitor diagnostic-settings list --resource $id
done
equivalent powerhsell script:
# list of resource ids for the subscription
$resourceIds = az resource list --query "[].id" | ConvertFrom-Json
# or filter on a specific resource group
$resourceGroup="<resource group name>"
$resourceIds = az resource list --query "[].id" --resource-group $resourceGroup | ConvertFrom-Json
# iterates and print diag settings
foreach($id in $resourceIds){
az monitor diagnostic-settings list --resource $id
}
Answered By - Thomas Answer Checked By - Gilberto Lyons (WPSolving Admin)