Reading Time: 3 minutes

Azure Arc-enabled servers provide a seamless bridge between on-premises, multi-cloud, and edge environments. They allow for centralized management of a diverse range of resources. At the heart of this management is Azure Resource Graph, a powerful querying tool that lets you extract valuable insights about your Arc-enabled servers, all at no extra cost!

In this post, we’ll explore the types of metadata you can uncover using Azure Resource Graph for Arc-enabled servers and demonstrate how these insights empower IT administrators to efficiently manage and secure their environments. Best of all, this valuable data is collected as standard information for every Arc-enabled server.

What is Azure Resource Graph?

Azure Resource Graph is a service that offers a unified way to query your Azure resources. It’s optimized for performance and scale, enabling administrators to instantly retrieve detailed information about their infrastructure. And here’s the kicker: Resource Graph queries are entirely free, making it an ideal solution for monitoring and extracting metadata from Arc-enabled servers.

Key Insights You Can Extract from Arc-Enabled Servers

The table below highlights some of the most commonly used properties you can retrieve for Arc-enabled servers, complete with sample output values, Resource Graph queries, and property names.

PropertySample Output ValueQuery Path
Agent Configuration: Config Modefullproperties.agentConfiguration.configMode
Agent Configuration: Extensions EnabledTRUEproperties.agentConfiguration.extensionsEnabled
Agent Configuration: Guest Configuration EnabledTRUEproperties.agentConfiguration.guestConfigurationEnabled
Agent Configuration: Incoming Connections Ports6516properties.agentConfiguration.incomingConnectionsPorts
Agent Configuration: Proxy URLhttp://localhost:40343properties.agentConfiguration.proxyUrl
Agent Configuration: Proxy Bypass[]properties.agentConfiguration.proxyBypass
Agent Upgrade: Enable Automatic UpgradeFALSEproperties.agentUpgrade.enableAutomaticUpgrade
Agent Version1.47.02843.1892properties.agentVersion
Cloud Metadata: ProviderN/Aproperties.cloudMetadata.provider
Detected Properties: Architectureamd64properties.detectedProperties.architecture
Detected Properties: Core Count4properties.detectedProperties.coreCount
Detected Properties: ManufacturerMicrosoft Corporationproperties.detectedProperties.manufacturer
Detected Properties: Cloud ProviderN/Aproperties.detectedProperties.cloudprovider
Detected Properties: ModelVirtual Machineproperties.detectedProperties.model
Detected Properties: Physical Memory8 GBproperties.detectedProperties.totalPhysicalMemoryInGigabytes
Detected Properties: Total Physical Memory (Bytes)8589934592properties.detectedProperties.totalPhysicalMemoryInBytes
Detected Properties: Processor NameAMD Ryzen 7 3700X 8-Core Processorproperties.detectedProperties.processorNames
Detected Properties: Logical Core Count8properties.detectedProperties.logicalCoreCount
Detected Properties: Processor Count1properties.detectedProperties.processorCount
Detected Properties: Virtualization Security StatusVbsEnabledSecureKernelRunningproperties.detectedProperties.virtualizationBasedSecurityStatus
Detected Properties: Serial Number7052-0348-4053-0363-1898-3761-51properties.detectedProperties.serialNumber
Detected Properties: SMBIOS Asset Tag7052-0348-4053-0363-1898-3761-51properties.detectedProperties.smbiosAssetTag
Detected Properties: MSSQL DiscoveredFALSEproperties.detectedProperties.mssqldiscovered
Detected Properties: Product Type8properties.detectedProperties.productType
Detected Properties: VM UUID ESU 2012A72A5524-F0AC-4E78-8B40-FA5EE50E98FAproperties.detectedProperties.vmuuidEsu2012
DNS FQDNServer01.root.ad.grproperties.dnsFqdn
Display NameServer01properties.displayName
Domain Nameroot.ad.grproperties.domainName
Last Status Change2024-12-11T14:46:19.2748566Zproperties.lastStatusChange
License Profile: ESU EligibilityIneligibleproperties.licenseProfile.esuProfile.esuEligibility
License Profile: ESU Profile – License Assignment StateNotAssignedproperties.licenseProfile.esuProfile.licenseAssignmentState
License Profile: Product Profile – FeaturesWindowsServerAzureArcMgmt, Hotpatchproperties.licenseProfile.productProfile.productFeatures
License Profile: License ChannelVolume:MAKproperties.licenseProfile.licenseChannel
License Profile: License StatusLicensedproperties.licenseProfile.licenseStatus
Machine FQDNServer01properties.machineFqdn
MSSQL DiscoveredFALSEproperties.mssqldiscovered
Network Profile: IP Address192.168.1.140properties.networkProfile.networkInterfaces[0].ipAddresses[0].address
Network Profile: Subnet192.168.1.0/24properties.networkProfile.networkInterfaces[0].ipAddresses[0].subnet.addressPrefix
OS Profile: Computer NameServer01properties.osProfile.computerName
OS EditionServer Datacenterproperties.osEdition
OS Install Date2024-11-03T07:39:50Zproperties.osInstallDate
OS NameWindowsproperties.osName
OS SKUWindows Server 2025 Datacenterproperties.osSku
OS TypeWindowsproperties.osType
OS Version10.0.26100.2314properties.osVersion
Provisioning StateSucceededproperties.provisioningState
VM IDd4b63eda-fdbb-43b7-96f5-de6152d8e94bproperties.vmId
VM UUIDA72A5524-F0AC-4E78-8B40-FA5EE50E98FAproperties.vmUuid
Service Status: Extension ServiceRunning (Automatic)properties.serviceStatuses.extensionService.status / properties.serviceStatuses.extensionService.startupType
Service Status: Guest ConfigurationRunning (Automatic)properties.serviceStatuses.guestConfigurationService.status / properties.serviceStatuses.guestConfigurationService.startupType
StatusDisconnectedproperties.status

Try it Yourself: Simple Asset Inventory of Arc-Enabled Servers

To create a simple asset inventory of Arc-enabled servers, you can use a query like this:

Resources
| where type == 'microsoft.hybridcompute/machines'
| extend Type = case(
    tostring(properties.detectedProperties.model) == "Virtual Machine", "Virtual",
    "Physical"
)
| extend networkProfile = properties.networkProfile
| mv-expand networkInterfaces = networkProfile.networkInterfaces
| project
	ComputerName = id,
    FQDN = tostring(properties.dnsFqdn),
    Domain = tostring(properties.domainName),
    OS = strcat(toupper(substring(tostring(properties.osName), 0, 1)),   substring(tostring(properties.osName), 1)),
    Type,
    OSName = tostring(properties.osSku),
    LicenseChannel = tostring(properties.licenseProfile.licenseChannel),
    BuildNumber = tostring(properties.osVersion),
    Processor = tostring(properties.detectedProperties.processorNames),
    Cores = tostring(properties.detectedProperties.coreCount),
    Memory = tostring(properties.detectedProperties.totalPhysicalMemoryInGigabytes),
    IPAddresses = networkInterfaces.ipAddresses,
    MSSQLPresent = tostring(properties.detectedProperties.mssqldiscovered), 
    CloudProvider = tostring(properties.detectedProperties.cloudprovider),
    Manufacturer = tostring(properties.detectedProperties.manufacturer),
    Model = tostring(properties.detectedProperties.model),
    AssetTag = properties.detectedProperties.smbiosAssetTag,
    AgentVersion = tostring(properties.agentVersion),
    AgentStatus = tostring(properties.status),
    Tags = tags

This query pulls detailed information about Arc-enabled servers, including their type (virtual or physical), operating system, processor details, memory, network configurations, and other critical asset information. It helps in managing and monitoring the infrastructure effectively.

With access to all this metadata, you have limitless possibilities for creating impactful visualizations. You can leverage tools like Azure Workbooks or Power BI to design meaningful and visually appealing dashboards for your Arc-enabled server estate. Similar to the Azure Workbook down below.

Conclusion

Azure Resource Graph provides a wealth of information for Arc-enabled servers, ranging from system configuration to licensing and compliance. By leveraging this tool, IT administrators can gain actionable insights without adding costs. Whether you’re monitoring network configurations, hardware details, or agent statuses, Resource Graph equips you with the visibility needed to maintain a healthy and secure hybrid environment.

Start experimenting with Resource Graph today and unlock the full potential of your Arc-enabled servers.

Thanks for reading!