Query Details

Multiple Azure Virtual Machines

Query

// Alternatively use here: https://portal.azure.com/#view/HubsExtension/ArgQueryBlade
arg("").Resources
| where type in~ (
    "microsoft.compute/virtualmachines",
    "microsoft.scvmm/virtualmachines",
    "microsoft.connectedvmwarevsphere/virtualmachines",
    "microsoft.azurestackhci/virtualmachines"
    )
| extend
    ProvisioningState = tostring(properties["provisioningState"]),
    TimeCreated = todatetime(properties["timeCreated"]),
    PowerState = tostring(properties["extended"]["instanceView"]["powerState"]["displayStatus"]),
    ExtComputerName = tostring(properties["extended"]["instanceView"]["computerName"]),
    ExtOsVersion = tostring(properties["extended"]["instanceView"]["osVersion"]),
    ExtOsName = tostring(properties["extended"]["instanceView"]["osName"]),
    DiskOsType = tostring(properties["storageProfile"]["osDisk"]["osType"]),
    DiskName = tostring(properties["storageProfile"]["osDisk"]["name"]),
    DiskOption = tostring(properties["storageProfile"]["osDisk"]["createOption"]),
    DiskImagePublisher = tostring(properties["storageProfile"]["imageReference"]["publisher"]),
    DiskImageVersion = tostring(properties["storageProfile"]["imageReference"]["exactVersion"]),
    DiskImageVersionType = tostring(properties["storageProfile"]["imageReference"]["version"]),
    DiskImageSku = tostring(properties["storageProfile"]["imageReference"]["sku"]),
    DiskImageOffer = tostring(properties["storageProfile"]["imageReference"]["offer"]),
    DiskImageName = tostring(split(tostring(split(tostring(properties["storageProfile"]["imageReference"]["id"]), "/images/")[1]), "/")[0]),
    DiskImageId = tostring(properties["storageProfile"]["imageReference"]["id"]),
    OsComputerName = tostring(properties["osProfile"]["computerName"]),
    OsAdminUsername = tostring(properties["osProfile"]["adminUsername"]),
    WindowsAutomaticUpdates = tostring(properties["osProfile"]["windowsConfiguration"]["enableAutomaticUpdates"]),
    PatchMode = tostring(properties["osProfile"][
        case(
            bag_keys(properties["osProfile"]) has "windowsConfiguration", "windowsConfiguration",
            bag_keys(properties["osProfile"]) has "linuxConfiguration", "linuxConfiguration",
            ""
        )
        ]["patchSettings"]["patchMode"]),
    LicenseType = tostring(properties["licenseType"]),
    VmId = tostring(properties["vmId"])
| join hint.remote=local kind=leftouter (
    arg("").ResourceContainers
    | where type == "microsoft.resources/subscriptions"
    | project subscriptionId, subscriptionName = name
    ) on subscriptionId
| sort by PowerState, LicenseType, DiskOption, DiskImageOffer
| project
    id,
    tenantId,
    subscriptionId,
    subscriptionName,
    resourceGroup,
    type,
    name,
    tags,
    plan,
    ProvisioningState, 
    TimeCreated,
    PowerState,
    ExtComputerName,
    ExtOsVersion,
    ExtOsName,
    DiskOsType,
    DiskName,
    DiskOption,
    DiskImagePublisher,
    DiskImageVersion,
    DiskImageVersionType,
    DiskImageSku,
    DiskImageOffer,
    DiskImageName,
    DiskImageId,
    OsComputerName,
    OsAdminUsername,
    PatchMode,
    WindowsAutomaticUpdates,
    LicenseType,
    VmId

Explanation

This query retrieves information about virtual machines from different types of resources in Azure. It includes details such as provisioning state, creation time, power state, computer name, operating system version, disk information, patch settings, license type, and more. The query also joins the results with subscription information and sorts the output based on power state, license type, disk option, and disk image offer. The final result includes various properties of the virtual machines.

Details

Jose Sebastián Canós profile picture

Jose Sebastián Canós

Released: September 5, 2023

Tables

ResourcesResourceContainers

Keywords

Devices,Intune,User

Operators

argResourceswherein~extendProvisioningStatetostringpropertiesTimeCreatedtodatetimePowerStateExtComputerNameExtOsVersionExtOsNameDiskOsTypeDiskNameDiskOptionDiskImagePublisherDiskImageVersionDiskImageVersionTypeDiskImageSkuDiskImageOfferDiskImageNamesplitOsComputerNameOsAdminUsernameWindowsAutomaticUpdatesPatchModecasebag_keysLicenseTypeVmIdjoinhint.remote=localkind=leftouterResourceContainersprojectsortbyidtenantIdsubscriptionIdsubscriptionNameresourceGrouptypenametagsplan.

Actions