Also, RBAC information cannot be queued with the resource graph currently. This has the benefit of being even faster. Heres the partial output when supplying the ARM query in listing 23: 4 attributes appear to control how many requests can be made. The problem with this command is that its running synchronously, thus retrieving results per one subscription at a time only. Since properties is a dynamic column, properties.IPConfigurations[indexer].properties.publicIPAddress.id is a dynamic value as well. $vms = Get-AzureRmVm foreach ($sub in $subs) And to get there we simply need to find another column other than the vmNics id to link our data, as follows: we know that each VM has an id (one is partially visible in figure 1), and wed just need something to link all the vmNics to their parent VM (as a vmNic can only be hooked to a single VM). Therefore from the 3 join flavor that ARG supports, innerunique is not required as the VMs in the left table are already unique, leftouter is not suitable as we dont expect to find VMs on the left table that dont show up in the right table (there cant be a vmNic that has a parent VM id not known in the full table of VMs, as the latter must contain all possible VMs that exist). The concern is what happens when our queries return a significant number of results, as in a big number of VMs in the result set. You can use the below Azure PowerShell cmdlet to view the model and instance view properties for a specific Azure Virtual Machine under a particular Resource Group. Inside the for loop, the same 2 actions are performed: switching the context to the current subscription and retrieving the corresponding list of VMs together with the name and IP details. Why the latter, taking into account that according to the ARM model there cannot be a VM that doesnt have at least one vmNic connected? But double-checking with Microsoft Support turned out that this isnt the case. Not the answer you're looking for? Even if you keep yourself active in that session, Cloud Shell still issues tokens valid for 1h, so the cmdlets running will start erroring out after that time, with the dreaded The access token expiry UTC time