How to safely replace Find-AzureRmResource -ResourceType calls in Azure PowerShell 6.x+
UPDATE: 2018-06-28 - Added resourcegroup ODataFilter example.
Starting with version 6.0 of Azure PowerShell, Find-AzureRmResource have been removed and Get-AzureRmResource is supposed to be the workaround.
My first reflex was to just convert Find-AzureRmResource -ResourceType to Get-AzureRmResource -ResourceType but I was unlucky and hit a regression and an error saying I could not only provide the ResourceType parameter.
On my machine, with version 5.2.0 of AzureRM.Resources module, I get the following error if trying the following command:
Get-AzureRmResource -ResourceType Microsoft.Storage/storageAccounts
Get-AzureRmResource : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Get-AzureRmResource -ResourceType Microsoft.Storage/storageAccounts
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-AzureRmResource], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation
.GetAzureResourceCmdlet
I found a safer way to replace a search by resource type, we can use the OData parameter like so:
Get-AzureRmResource -ODataQuery "`$filter=resourcetype eq 'Microsoft.Storage/storageAccounts'"
You can be more restrictive and filter by resource type & resource group :
Get-AzureRmResource -ODataQuery "`$filter=resourcetype eq 'Microsoft.Storage/storageAccounts' and resourcegroup eq 'myrg'"
This worked for me in AzureRM 5.x and AzureRM 6.x
Happy script rewrite!
Antes de elegir entre cómo comparar opciones de una camiseta para regalar, merece la pena comprobar la talla, el material y el uso previsto. También ayuda revisar las instrucciones de cuidado y cualquier límite aplicable a la personalización antes de completar el pedido.