An Azure service to centrally manages updates and compliance at scale.
Hello @Andrea Longhitano
The GUID in the resource ID is expected behavior, it is not a bug or a random issue.
The query you're running:
maintenanceresources
| where type == "microsoft.maintenance/configurationassignments"
is querying configuration assignment resources, not the maintenance configuration itself. These are two different resource types in Azure:
| Resource Type | What It Represents |
|---|---|
Microsoft.Maintenance/maintenanceConfigurations |
The actual maintenance configuration you created (e.g., tagetik-prod-patching) |
| -------- | -------- |
Microsoft.Maintenance/maintenanceConfigurations |
The actual maintenance configuration you created (e.g., tagetik-prod-patching) |
Microsoft.Maintenance/configurationAssignments |
The link/assignment between a maintenance configuration and a target resource (VM, scope, etc.) |
As documented in the ARM template reference for configurationAssignments, the name property of a configuration assignment is simply a string, it does not have to match the maintenance configuration name.
When assignments are created (especially via the Azure portal, dynamic scopes, or Policy), Azure often auto-generates a unique GUID-based name for the assignment to avoid naming collisions. This is why you see a UUID in the id field for some assignments.
The reason it appears "random" where some assignments have a clean name and others have a GUID , depends on how the assignment was created:
- Portal or dynamic scope → Azure typically generates a GUID name automatically.
- CLI / ARM / Bicep with an explicit name → The name you specify is used as-is.
So, your maintenance configuration tagetik-prod-patching is correctly named. The GUID you see belongs to the assignment object that links it to a VM or scope.
If you want to retrieve the actual maintenance configuration name from the assignment, you can extract it from the maintenanceConfigurationId property in the assignment:
maintenanceresources
| where type == "microsoft.maintenance/configurationassignments"
| extend maintenanceConfigName = tostring(split(properties.maintenanceConfigurationId, "/")[-1])
| project name, maintenanceConfigName, id, properties
This will show you the friendly configuration name alongside the assignment ID.
Reference:
- Configuration Assignments – ARM template reference
- Configuration Assignments – REST API (Create or Update)
- Scheduling Recurring Updates in Azure Update Manager
- Maintenance Configurations – ARM template reference
Hope this clarifies the behavior! If you have any further questions, feel free to ask.
If you found the comment helpful, please consider clicking "Upvote it."
Thanks,
Suchitra.