Azure Resource Graph-exempelfrågor för virtuella Azure-datorer
Den här sidan är en samling Azure Resource Graph-exempelfrågor för Virtuella Azure-datorer.
Exempelfrågor
Antal installationer av os-uppdateringar som har slutförts
Returnerar en lista över status för operativsystemuppdateringsinstallationskörningar som utförts för dina datorer under de senaste sju dagarna.
PatchAssessmentResources
| where type !has 'softwarepatches'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), OS = tostring(prop.osType), installedPatchCount = tostring(prop.installedPatchCount), failedPatchCount = tostring(prop.failedPatchCount), pendingPatchCount = tostring(prop.pendingPatchCount), excludedPatchCount = tostring(prop.excludedPatchCount), notSelectedPatchCount = tostring(prop.notSelectedPatchCount)
| where lTime > ago(7d)
| project lTime, RunID=name,machineName, rgName, resourceType, OS, installedPatchCount, failedPatchCount, pendingPatchCount, excludedPatchCount, notSelectedPatchCount
az graph query -q "PatchAssessmentResources | where type !has 'softwarepatches' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), OS = tostring(prop.osType), installedPatchCount = tostring(prop.installedPatchCount), failedPatchCount = tostring(prop.failedPatchCount), pendingPatchCount = tostring(prop.pendingPatchCount), excludedPatchCount = tostring(prop.excludedPatchCount), notSelectedPatchCount = tostring(prop.notSelectedPatchCount) | where lTime > ago(7d) | project lTime, RunID=name,machineName, rgName, resourceType, OS, installedPatchCount, failedPatchCount, pendingPatchCount, excludedPatchCount, notSelectedPatchCount"
Antal virtuella datorer efter tillgänglighetstillstånd och prenumerations-ID
Returnerar antalet virtuella datorer (typ Microsoft.Compute/virtualMachines
) aggregerade efter deras tillgänglighetstillstånd i var och en av dina prenumerationer.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| summarize count() by subscriptionId, AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | summarize count() by subscriptionId, AvailabilityState = tostring(properties.availabilityState)"
Antal virtuella datorer efter energisparläge
Returnerar antalet virtuella datorer (typ Microsoft.Compute/virtualMachines
) kategoriserade enligt deras energitillstånd. Mer information om energitillstånd finns i Översikt över Power-tillstånd.
Resources
| where type == 'microsoft.compute/virtualmachines'
| summarize count() by PowerState = tostring(properties.extended.instanceView.powerState.code)
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | summarize count() by PowerState = tostring(properties.extended.instanceView.powerState.code)"
Antal virtuella datorer efter OS-typ
Vi bygger vidare på den föregående frågan och begränsar fortfarande efter Azure-resurstyp Microsoft.Compute/virtualMachines
men inte längre efter antalet returnerade poster. I stället använder vi summarize
och count()
för att definiera hur värdena ska grupperas och aggregeras efter egenskap, som i det här exemplet är properties.storageProfile.osDisk.osType
. Ett exempel på hur denna sträng ser ut i det fullständiga objektet visas i Utforska resurser – Identifiering av virtuell maskin.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| summarize count() by tostring(properties.storageProfile.osDisk.osType)
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)"
Räkna virtuella datorer efter operativsystemtyp med utökad
Ett annat sätt att skriva frågan "Räkna virtuella datorer efter operativsystemtyp" är till extend
en egenskap och ge den ett tillfälligt namn för användning i frågan, i det här fallet os. os används sedan av summarize
och count()
som i det refererade exemplet.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| extend os = properties.storageProfile.osDisk.osType
| summarize count() by tostring(os)
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | extend os = properties.storageProfile.osDisk.osType | summarize count() by tostring(os)"
Hämta alla nya aviseringar från de senaste 30 dagarna
Den här frågan innehåller en lista över alla användarens nya aviseringar från de senaste 30 dagarna.
iotsecurityresources
| where type == 'microsoft.iotsecurity/locations/devicegroups/alerts'
| where todatetime(properties.startTimeUtc) > ago(30d) and properties.status == 'New'
az graph query -q "iotsecurityresources | where type == 'microsoft.iotsecurity/locations/devicegroups/alerts' | where todatetime(properties.startTimeUtc) > ago(30d) and properties.status == 'New'"
Hämta kapacitet och storlek för skaluppsättning för virtuell dator
Den här frågan söker efter resurser för VM-skalningsuppsättningsresurser och hämtar olika typer av information om t.ex. den virtuella datorns storlek och skalningsuppsättningens kapacitet. Den här frågan använder toint()
-funktionen för att konvertera kapaciteten till ett tal, så att den kan sorteras. Slutligen ändras kolumnernas namn till anpassade namngivna egenskaper.
Resources
| where type=~ 'microsoft.compute/virtualmachinescalesets'
| where name contains 'contoso'
| project subscriptionId, name, location, resourceGroup, Capacity = toint(sku.capacity), Tier = sku.name
| order by Capacity desc
az graph query -q "Resources | where type=~ 'microsoft.compute/virtualmachinescalesets' | where name contains 'contoso' | project subscriptionId, name, location, resourceGroup, Capacity = toint(sku.capacity), Tier = sku.name | order by Capacity desc"
Visa en lista över alla tillägg som är installerade på en virtuell dator
Först använder extend
den här frågan på resurstypen virtuella datorer för att hämta ID:t i versaler (toupper()
) ID:t, hämta operativsystemets namn och typ och hämta storleken på den virtuella datorn. Att hämta resurs-ID:t i versaler är ett bra sätt att förbereda för att ansluta till en annan egenskap. Sedan används join
frågan med kind
för leftouter
att hämta tillägg för virtuella datorer genom att matcha en versal substring
i tilläggs-ID:t. Den del av ID:t tidigare /extensions/\<ExtensionName\>
är samma format som ID:t för virtuella datorer, så vi använder den här egenskapen för join
. summarize
används sedan med make_list
på namnet på tillägget för den virtuella datorn för att kombinera namnet på varje tillägg där ID, OSName, OSType och VMSize är samma i en enda matrisegenskap. Slutligen har vi order by
gement OSName med asc
. Som standard order by
är fallande.
Resources
| where type == 'microsoft.compute/virtualmachines'
| extend
JoinID = toupper(id),
OSName = tostring(properties.osProfile.computerName),
OSType = tostring(properties.storageProfile.osDisk.osType),
VMSize = tostring(properties.hardwareProfile.vmSize)
| join kind=leftouter(
Resources
| where type == 'microsoft.compute/virtualmachines/extensions'
| extend
VMId = toupper(substring(id, 0, indexof(id, '/extensions'))),
ExtensionName = name
) on $left.JoinID == $right.VMId
| summarize Extensions = make_list(ExtensionName) by id, OSName, OSType, VMSize
| order by tolower(OSName) asc
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | extend JoinID = toupper(id), OSName = tostring(properties.osProfile.computerName), OSType = tostring(properties.storageProfile.osDisk.osType), VMSize = tostring(properties.hardwareProfile.vmSize) | join kind=leftouter( Resources | where type == 'microsoft.compute/virtualmachines/extensions' | extend VMId = toupper(substring(id, 0, indexof(id, '/extensions'))), ExtensionName = name ) on \$left.JoinID == \$right.VMId | summarize Extensions = make_list(ExtensionName) by id, OSName, OSType, VMSize | order by tolower(OSName) asc"
Lista tillgängliga OS-uppdateringar för alla datorer grupperade efter uppdateringskategori
Returnerar en lista över väntande operativsystem för dina datorer.
PatchAssessmentResources
| where type !has 'softwarepatches'
| extend prop = parse_json(properties)
| extend lastTime = properties.lastModifiedDateTime
| extend updateRollupCount = prop.availablePatchCountByClassification.updateRollup, featurePackCount = prop.availablePatchCountByClassification.featurePack, servicePackCount = prop.availablePatchCountByClassification.servicePack, definitionCount = prop.availablePatchCountByClassification.definition, securityCount = prop.availablePatchCountByClassification.security, criticalCount = prop.availablePatchCountByClassification.critical, updatesCount = prop.availablePatchCountByClassification.updates, toolsCount = prop.availablePatchCountByClassification.tools, otherCount = prop.availablePatchCountByClassification.other, OS = prop.osType
| project lastTime, id, OS, updateRollupCount, featurePackCount, servicePackCount, definitionCount, securityCount, criticalCount, updatesCount, toolsCount, otherCount
az graph query -q "PatchAssessmentResources | where type !has 'softwarepatches' | extend prop = parse_json(properties) | extend lastTime = properties.lastModifiedDateTime | extend updateRollupCount = prop.availablePatchCountByClassification.updateRollup, featurePackCount = prop.availablePatchCountByClassification.featurePack, servicePackCount = prop.availablePatchCountByClassification.servicePack, definitionCount = prop.availablePatchCountByClassification.definition, securityCount = prop.availablePatchCountByClassification.security, criticalCount = prop.availablePatchCountByClassification.critical, updatesCount = prop.availablePatchCountByClassification.updates, toolsCount = prop.availablePatchCountByClassification.tools, otherCount = prop.availablePatchCountByClassification.other, OS = prop.osType | project lastTime, id, OS, updateRollupCount, featurePackCount, servicePackCount, definitionCount, securityCount, criticalCount, updatesCount, toolsCount, otherCount"
Lista över installationen av Linux OS-uppdateringen klar
Returnerar en lista över status för Linux Server – installation av operativsystemuppdatering som har utförts för dina datorer under de senaste sju dagarna.
PatchAssessmentResources
| where type has 'softwarepatches' and properties has 'version'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), version = tostring(prop.version), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications)
| where lTime > ago(7d)
| project lTime, RunID, machineName, rgName, resourceType, patchName, version, classifications, installationState
| sort by RunID
az graph query -q "PatchAssessmentResources | where type has 'softwarepatches' and properties has 'version' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), version = tostring(prop.version), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications) | where lTime > ago(7d) | project lTime, RunID, machineName, rgName, resourceType, patchName, version, classifications, installationState | sort by RunID"
Lista över virtuella datorer och associerade tillgänglighetstillstånd efter resurs-ID
Returnerar den senaste listan över virtuella datorer (typ Microsoft.Compute/virtualMachines
) aggregerade efter tillgänglighetstillstånd. Frågan innehåller också det associerade resurs-ID:t baserat på properties.targetResourceId
, för enkel felsökning och åtgärd. Tillgänglighetstillstånd kan vara ett av fyra värden: Tillgängligt, Otillgängligt, Degraderat och Okänt. Mer information om vad var och en av tillgänglighetstillstånden betyder finns i Översikt över Azure Resource Health.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)"
Lista över virtuella datorer efter tillgänglighetstillstånd och energitillstånd med resurs-ID:t och resursgrupper
Returnerar en lista över virtuella datorer (typ Microsoft.Compute/virtualMachines
) aggregerade på deras energitillstånd och tillgänglighetstillstånd för att ge dina virtuella datorer ett sammanhängande hälsotillstånd. Frågan innehåller också information om resursgruppen och resurs-ID:t som är associerade med varje post för detaljerad insyn i dina resurser.
Resources
| where type =~ 'microsoft.compute/virtualmachines'
| project resourceGroup, Id = tolower(id), PowerState = tostring( properties.extended.instanceView.powerState.code)
| join kind=leftouter (
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| where tostring(properties.targetResourceType) =~ 'microsoft.compute/virtualmachines'
| project targetResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState))
on $left.Id == $right.targetResourceId
| project-away targetResourceId
| where PowerState != 'PowerState/deallocated'
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | project resourceGroup, Id = tolower(id), PowerState = tostring( properties.extended.instanceView.powerState.code) | join kind=leftouter ( HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | where tostring(properties.targetResourceType) =~ 'microsoft.compute/virtualmachines' | project targetResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)) on \$left.Id == \$right.targetResourceId | project-away targetResourceId | where PowerState != 'PowerState/deallocated'"
Lista över virtuella datorer som inte är tillgängliga av resurs-ID:t
Returnerar den senaste listan över virtuella datorer (typ Microsoft.Compute/virtualMachines
) aggregerade efter deras tillgänglighetstillstånd. I den ifyllda listan markeras endast virtuella datorer vars tillgänglighetstillstånd inte är tillgängligt för att säkerställa att du är medveten om alla angivna tillstånd som dina virtuella datorer befinner sig i. När alla dina virtuella datorer är tillgängliga kan du förvänta dig att inte få några resultat.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| where tostring(properties.availabilityState) != 'Available'
| summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | where tostring(properties.availabilityState) != 'Available' | summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)"
Lista över installationen av Windows Server OS-uppdateringen klar
Returnerar en lista över status för Windows Server – installation av operativsystemuppdatering som har utförts för dina datorer under de senaste sju dagarna.
PatchAssessmentResources
| where type has 'softwarepatches' and properties !has 'version'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), kbId = tostring(prop.kbId), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications)
| where lTime > ago(7d)
| project lTime, RunID, machineName, rgName, resourceType, patchName, kbId, classifications, installationState
| sort by RunID
az graph query -q "PatchAssessmentResources | where type has 'softwarepatches' and properties !has 'version' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), kbId = tostring(prop.kbId), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications) | where lTime > ago(7d) | project lTime, RunID, machineName, rgName, resourceType, patchName, kbId, classifications, installationState | sort by RunID"
Lista virtuella datorer med deras nätverksgränssnitt och offentliga IP-adress
Den här frågan använder två leftouter
join
kommandon för att sammanföra virtuella datorer som skapats med Resource Manager-distributionsmodellen, deras relaterade nätverksgränssnitt och alla offentliga IP-adresser som är relaterade till dessa nätverksgränssnitt.
Resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend nics=array_length(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| where nics == 1 or nic.properties.primary =~ 'true' or isempty(nic)
| project vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id)
| join kind=leftouter (
Resources
| where type =~ 'microsoft.network/networkinterfaces'
| extend ipConfigsCount=array_length(properties.ipConfigurations)
| mv-expand ipconfig=properties.ipConfigurations
| where ipConfigsCount == 1 or ipconfig.properties.primary =~ 'true'
| project nicId = id, publicIpId = tostring(ipconfig.properties.publicIPAddress.id))
on nicId
| project-away nicId1
| summarize by vmId, vmName, vmSize, nicId, publicIpId
| join kind=leftouter (
Resources
| where type =~ 'microsoft.network/publicipaddresses'
| project publicIpId = id, publicIpAddress = properties.ipAddress)
on publicIpId
| project-away publicIpId1
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | extend nics=array_length(properties.networkProfile.networkInterfaces) | mv-expand nic=properties.networkProfile.networkInterfaces | where nics == 1 or nic.properties.primary =~ 'true' or isempty(nic) | project vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id) | join kind=leftouter ( Resources | where type =~ 'microsoft.network/networkinterfaces' | extend ipConfigsCount=array_length(properties.ipConfigurations) | mv-expand ipconfig=properties.ipConfigurations | where ipConfigsCount == 1 or ipconfig.properties.primary =~ 'true' | project nicId = id, publicIpId = tostring(ipconfig.properties.publicIPAddress.id)) on nicId | project-away nicId1 | summarize by vmId, vmName, vmSize, nicId, publicIpId | join kind=leftouter ( Resources | where type =~ 'microsoft.network/publicipaddresses' | project publicIpId = id, publicIpAddress = properties.ipAddress) on publicIpId | project-away publicIpId1"
Visning av alla virtuella datorer sorterade efter namn i fallande ordning
För att bara lista virtuella datorer (som är typen Microsoft.Compute/virtualMachines
) kan vi matcha egenskapen type (typ) i resultatet. Som för den föregående frågan, ändrar desc
order by
till att vara fallande. Tecknet =~
i typmatchningen talar om för Resource Graph att Resource Graph ska vara skiftlägesokänsligt.
Resources
| project name, location, type
| where type =~ 'Microsoft.Compute/virtualMachines'
| order by name desc
az graph query -q "Resources | project name, location, type | where type =~ 'Microsoft.Compute/virtualMachines' | order by name desc"
Visning av de första fem virtuella datorerna efter namn och OS-typ
Den här frågan använder top
för att endast hämta fem matchande poster som sorteras efter namn. Typen av Azure-resurs är Microsoft.Compute/virtualMachines
. project
talar om Azure Resource Graph vilka egenskaper som ska inkluderas.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, properties.storageProfile.osDisk.osType
| top 5 by name desc
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project name, properties.storageProfile.osDisk.osType | top 5 by name desc"
Sammanfatta den virtuella datorn efter den utökade egenskapen power states
Den här frågan använder utökade egenskaper på virtuella datorer för att sammanfatta efter energispartillstånd.
Resources
| where type == 'microsoft.compute/virtualmachines'
| summarize count() by tostring(properties.extended.instanceView.powerState.code)
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | summarize count() by tostring(properties.extended.instanceView.powerState.code)"
Virtuella datorer matchade av regex
Den här frågan söker efter virtuella datorer som matchar ett reguljärt uttryck (även kallat regex). Med matches regex @ kan vi definiera regex så att det matchar, vilket är ^Contoso(.*)[0-9]+$
. Den regex-definitionen förklaras så här:
^
– Matchningen måste börja i början av strängen.Contoso
– Skiftlägeskänslig sträng.(.*)
- En underuttrycksmatchning:.
– Matchar varje enskilt tecken (förutom ny rad).*
– Matchar föregående element noll eller flera gånger.
[0-9]
– Teckengruppsmatchning för siffrorna 0-9.+
– Matchar föregående element en eller flera gånger.$
– Matchning av föregående element måste ske i slutet av strängen.
När matchningen efter namn är klar projicerar frågan namnet och sorterar efter namn, i stigande ordning.
Resources
| where type =~ 'microsoft.compute/virtualmachines' and name matches regex @'^Contoso(.*)[0-9]+$'
| project name
| order by name asc
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' and name matches regex @'^Contoso(.*)[0-9]+\$' | project name | order by name asc"
Nästa steg
- Läs mer om frågespråket.
- Läs mer om hur du utforskar resurser.