Delen via


Azure Resource Graph-voorbeeldquery's voor Azure Virtual Machines

Deze pagina is een verzameling azure Resource Graph-voorbeeldquery's voor Azure Virtual Machines.

Voorbeeldquery's

Aantal installatie van besturingssysteemupdate voltooid

Retourneert een lijst met status van de installatie van besturingssysteemupdates die in de afgelopen zeven dagen zijn uitgevoerd voor uw computers.

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"

Aantal virtuele machines op beschikbaarheidsstatus en abonnements-id

Retourneert het aantal virtuele machines (type Microsoft.Compute/virtualMachines) dat is geaggregeerd op basis van de beschikbaarheidsstatus voor elk van uw abonnementen.

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)"

Aantal virtuele machines op energiestatus

Retourneert het aantal virtuele machines (type Microsoft.Compute/virtualMachines) dat is gecategoriseerd op basis van de energiestatus. Zie het overzicht van Power-statussen voor meer informatie over energiestatussen.

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)"

Virtuele machines tellen op type besturingssysteem

Voortbouwend op de vorige query zijn we nog steeds een grens aan het stellen aan het aantal Azure-resources van het type Microsoft.Compute/virtualMachines, maar beperken we niet langer het aantal geretourneerde records. In plaats daarvan hebben we summarize en count() gebruikt om te definiëren hoe we de waarden willen groeperen en aggregeren op basis van de eigenschap. In dit voorbeeld is dat properties.storageProfile.osDisk.osType. Voor een voorbeeld van hoe deze tekenreeks er uitziet in het volledige object, raadpleegt u Resources verkennen - detectie van virtuele machines.

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)"

Virtuele machines tellen op type besturingssysteem met uitbreiden

Een andere manier om de query 'Aantal virtuele machines per type besturingssysteem' te schrijven, is door een eigenschap en deze een tijdelijke naam te extend geven voor gebruik in de query, in dit geval het besturingssysteem. besturingssysteem wordt vervolgens gebruikt door summarize en count() zoals in het voorbeeld waarnaar wordt verwezen.

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)"

Alle nieuwe waarschuwingen van de afgelopen 30 dagen ophalen

Deze query bevat een lijst met alle nieuwe waarschuwingen van de gebruiker, van de afgelopen 30 dagen.

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'"

Capaciteit en grootte van een virtuele-machineschaalset ophalen

Met deze query zoekt u virtuele-machineschaalsetresources en verkrijgt u diverse informatie, waaronder de grootte van de virtuele machines en de capaciteit van de schaalset. Deze query maakt gebruik van de functie toint() om de capaciteit te converteren naar een waarde die kan worden gesorteerd. Ten slotte worden de namen van de kolommen gewijzigd in eigenschappen met aangepaste namen.

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"

Alle extensies weergeven die zijn geïnstalleerd op een virtuele machine

Ten eerste gebruikt deze query extend op het resourcetype virtuele machines om de id in hoofdletters (toupper()) de id op te halen, de naam en het type van het besturingssysteem op te halen en de grootte van de virtuele machine op te halen. Het ophalen van de resource-id in hoofdletters is een goede manier om u voor te bereiden op deelname aan een andere eigenschap. Vervolgens gebruikt join de query met kind betrekking leftouter tot het ophalen van extensies voor virtuele machines door een hoofdletter substring van de extensie-id te koppelen. Het gedeelte van de id voordien /extensions/\<ExtensionName\> is dezelfde indeling als de id van de virtuele machines, dus we gebruiken deze eigenschap voor de join. summarize wordt vervolgens gebruikt met make_list de naam van de extensie van de virtuele machine om de naam van elke extensie te combineren waarbij id, OSName, OSType en VMSize hetzelfde zijn in één matrixeigenschap. Ten slotte gebruiken we order by OSName in kleine letters met asc. order by is standaard aflopend.

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"

Beschikbare besturingssysteemupdates weergeven voor al uw computers gegroepeerd op updatecategorie

Retourneert een lijst met besturingssysteem dat in behandeling is voor uw computers.

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"

Lijst met installatie van linux-besturingssysteem is voltooid

Retourneert een lijst met status van Linux Server: installatie van besturingssysteemupdates uitgevoerd voor uw computers in de afgelopen zeven dagen.

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"

Lijst met virtuele machines en bijbehorende beschikbaarheidsstatussen per resource-id

Retourneert de meest recente lijst met virtuele machines (type Microsoft.Compute/virtualMachines) geaggregeerd op beschikbaarheidsstatus. De query biedt ook de bijbehorende resource-id op properties.targetResourceIdbasis van , voor eenvoudige foutopsporing en risicobeperking. Beschikbaarheidsstatussen kunnen een van de vier waarden zijn: Beschikbaar, Niet beschikbaar, Gedegradeerd en Onbekend. Zie het overzicht van Azure Resource Health voor meer informatie over wat elk van de beschikbaarheidsstatussen betekent.

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)"

Lijst met virtuele machines op beschikbaarheidsstatus en energiestatus met resource-id's en resourcegroepen

Retourneert een lijst met virtuele machines (type Microsoft.Compute/virtualMachines) die zijn geaggregeerd op hun energiestatus en beschikbaarheidsstatus om een samenhangende status voor uw virtuele machines te bieden. De query bevat ook details over de resourcegroep en resource-id die aan elke vermelding zijn gekoppeld voor gedetailleerde zichtbaarheid van uw resources.

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'"

Lijst met virtuele machines die niet beschikbaar zijn op resource-id's

Retourneert de meest recente lijst met virtuele machines (type Microsoft.Compute/virtualMachines) die zijn geaggregeerd op basis van de beschikbaarheidsstatus. In de ingevulde lijst worden alleen virtuele machines gemarkeerd waarvan de beschikbaarheidsstatus niet beschikbaar is om ervoor te zorgen dat u op de hoogte bent van alle statussen waarin uw virtuele machines zich bevinden. Wanneer al uw virtuele machines beschikbaar zijn, kunt u verwachten dat er geen resultaten worden ontvangen.

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)"

Lijst met installatie van windows Server-besturingssysteem is voltooid

Retourneert een lijst met status van Windows Server: installatie van besturingssysteemupdates uitgevoerd voor uw computers in de afgelopen zeven dagen.

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"

Een lijst met virtuele machines weergeven met bijbehorende netwerkinterfaces en openbare IP-adressen

Deze query maakt gebruik van twee leftouter join opdrachten om virtuele machines samen te voegen die zijn gemaakt met het Resource Manager-implementatiemodel, de bijbehorende netwerkinterfaces en elk openbaar IP-adres dat is gerelateerd aan die netwerkinterfaces.

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"

Alle virtuele machines weergeven, aflopend geordend op naam

Als u alleen virtuele machines wilt vermelden (die van het type Microsoft.Compute/virtualMachines zijn), kan een overeenkomst worden gezocht met de eigenschap type in de resultaten. Net als in de vorige query verandert u met desc de order by in aflopend. De =~ in de type-overeenkomst betekent in Resource Graph dat de sortering hoofdlettergevoelig is.

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"

De eerste vijf virtuele machines weergeven op naam en met hun type besturingssysteem

Deze query gebruikt top om slechts vijf overeenkomende records op te halen die op naam zijn geordend. Het type van de Azure-resource is Microsoft.Compute/virtualMachines. project geeft in Azure Resource Graph aan welke eigenschappen u wilt opnemen.

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"

Virtuele machine samenvatten op basis van de uitgebreide eigenschap voor energiestatussen

Deze query maakt gebruik van de uitgebreide eigenschappen op virtuele machines om deze op energiestatus samen te vatten.

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)"

Virtuele machines zoeken met reguliere expressies

Deze query zoekt virtuele machines die overeenkomen met een reguliere expressie (ook wel regex genoemd). Met de reguliere overeenkomstexpressie @ kunt u de betreffende reguliere expressie definiëren. Deze is ^Contoso(.*)[0-9]+$. De definitie van deze reguliere expressie wordt als volgt uitgelegd:

  • ^: Overeenkomst moet beginnen aan het begin van de tekenreeks.
  • Contoso: De hoofdlettergevoelige reeks.
  • (.*) - Een subexpressieovereenkomst:
    • .: Komt overeen met een willekeurig teken (met uitzondering van een nieuwe regel).
    • *: Komt nul keer of vaker overeen met vorig element.
  • [0-9]: Tekengroepovereenkomst met de cijfers 0 t/m 9.
  • +: Komt één keer of vaker overeen met vorig element.
  • $: Overeenkomst met het vorige element moet voorkomen aan het einde van de tekenreeks.

Na de vergelijking op naam worden de namen in oplopende volgorde weergegeven.

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"

Volgende stappen