Azure / Azure/azure-powershell
Tags are case sensitive due to using defaults for Dictionary and HashTable
- Dominant language
- C#
- Stars
- 4.8k
- Forks
- 4.3k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 51
Description
## Description
Tags returned from the Az module are considered to be case sensitive. In the Azure portal, tags are considered to be case insensitive when searching for tags from the GUI.
It looks like `StringComparer.OrdinalIgnoreCase` is needing to be used for the HashTable and Dictionaries in several places (AKV Module example below)
https://github.com/Azure/azure-powershell/blob/1bcbe7b1f7a3323ac98f7754ba03eeb6b45e79f2/src/KeyVault/KeyVault/Models/TagsHelper.cs#L25-L50
We are having problems extracting tag information from virtual machines due to this for automation and reporting for our customers.
## Steps to reproduce
```powershell
> $vm = Get-AzVM
> $vm.Tags["mycooltag"]
supercool
> $vm.Tags["MyCoolTag"]
> $hashTable = @{mycooltag = "supercool"}
> $hashTable["mycooltag"]
supercool
> $hashTable["MyCoolTag"]
supercool
```
## Environment data
```
> $PSVersionTable
Name Value
---- -----
PSVersion 6.2.0
PSEdition Core
GitCommitId 6.2.0
OS Microsoft Windows 10.0.18362
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
```
## Module versions
```powershell
ModuleType Version Name PSEdition ExportedCommands
---------- ------- ---- --------- ----------------
Script 1.6.0 Az Core,Desk
Script 1.5.0 Az Core,Desk
Script 1.4.0 Az.Accounts Core,Desk {Disable-AzDataCollection, Disable-AzContextAutosa…
Script 1.0.1 Az.Aks Core,Desk {Get-AzAks, New-AzAks, Remove-AzAks, Import-AzAksC…
Script 1.0.2 Az.AnalysisServices Core,Desk {Resume-AzAnalysisServicesServer, Suspend-AzAnalys…
Script 1.0.0 Az.ApiManagement Core,Desk {Add-AzApiManagementRegion, Get-AzApiManagementSso…
Script 1.0.0 Az.ApplicationInsights Core,Desk {Get-AzApplicationInsights, New-AzApplicationInsig…
Script 1.2.0 Az.Automation Core,Desk {Get-AzAutomationHybridWorkerGroup, Remove-AzAutom…
Script 1.1.2 Az.Automation Core,Desk {Get-AzAutomationHybridWorkerGroup, Remove-AzAutom…
Script 1.0.0 Az.Batch Core,Desk {Remove-AzBatchAccount, Get-AzBatchAccount, Get-Az…
Script 1.0.0 Az.Billing Core,Desk {Get-AzBillingInvoice, Get-AzBillingPeriod, Get-Az…
Script 1.1.0 Az.Cdn Core,Desk {Get-AzCdnProfile, Get-AzCdnProfileSsoUrl, New-AzC…
Script 1.0.1 Az.CognitiveServices Core,Desk {Get-AzCognitiveServicesAccount, Get-AzCognitiveSe…
Script 1.6.0 Az.Compute Core,Desk {Remove-AzAvailabilitySet, Get-AzAvailabilitySet, …
Script 1.5.0 Az.Compute Core,Desk {Remove-AzAvailabilitySet, Get-AzAvailabilitySet, …
Script 1.0.0 Az.ContainerInstance Core,Desk {New-AzContainerGroup, Get-AzContainerGroup, Remov…
Script 1.0.1 Az.ContainerRegistry Core,Desk {New-AzContainerRegistry, Get-AzContainerRegistry,…
Script 1.0.2 Az.DataFactory Core,Desk {Set-AzDataFactoryV2, Update-AzDataFactoryV2, Get-…
Script 1.0.0 Az.DataLakeAnalytics Core,Desk {Get-AzDataLakeAnalyticsDataSource, New-AzDataLake…
Script 1.1.0 Az.DataLakeStore Core,Desk {Get-AzDataLakeStoreTrustedIdProvider, Remove-AzDa…
Script 1.0.0 Az.DevTestLabs Core,Desk {Get-AzDtlAllowedVMSizesPolicy, Get-AzDtlAutoShutd…
Script 1.0.0 Az.Dns Core,Desk {Get-AzDnsRecordSet, New-AzDnsRecordConfig, Remove…
Script 1.1.0 Az.EventGrid Core,Desk {New-AzEventGridTopic, Get-AzEventGridTopic, Set-A…
Script 1.0.1 Az.EventHub Core,Desk {New-AzEventHubNamespace, Get-AzEventHubNamespace,…
Script 1.0.0 Az.HDInsight Core,Desk {Get-AzHDInsightJob, New-AzHDInsightSqoopJobDefini…
Script 1.0.2 Az.IotHub Core,Desk {Add-AzIotHubKey, Get-AzIotHubEventHubConsumerGrou…
Script 1.1.0 Az.KeyVault Core,Desk {Add-AzKeyVaultCertificate, Update-AzKeyVaultCerti…
Script 1.0.2 Az.KeyVault Core,Desk {Add-AzKeyVaultCertificate, Update-AzKeyVaultCerti…
Script 1.2.1 Az.LogicApp Core,Desk {Get-AzIntegrationAccountAgreement, Get-AzIntegrat…
Script 1.0.0 Az.MachineLearning Core,Desk {Move-AzMlCommitmentAssociation, Get-AzMlCommitmen…
Script 1.0.0 Az.MarketplaceOrdering Core,Desk {Get-AzMarketplaceTerms, Set-AzMarketplaceTerms}
Script 1.0.0 Az.Media Core,Desk {Sync-AzMediaServiceStorageKeys, Set-AzMediaServic…
Script 1.0.1 Az.Monitor Core,Desk {Get-AzMetricDefinition, Get-AzMetric, Remove-AzLo…
Script 1.6.0 Az.Network Core,Desk {Add-AzApplicationGatewayAuthenticationCertificate…
Script 1.4.0 Az.Network Core,Desk {Add-AzApplicationGatewayAuthenticationCertificate…
Script 1.3.0 Az.Network Core,Desk {Add-AzApplicationGatewayAuthenticationCertificate…
Script 1.0.0 Az.NotificationHubs Core,Desk {Get-AzNotificationHub, Get-AzNotificationHubAutho…
Script 1.1.0 Az.OperationalInsights Core,Desk {New-AzOperationalInsightsAzureActivityLogDataSour…
Script 1.0.0 Az.PolicyInsights Core,Desk {Get-AzPolicyEvent, Get-AzPolicyState, Get-AzPolic…
Script 1.0.0 Az.PowerBIEmbedded Core,Desk {Remove-AzPowerBIWorkspaceCollection, Get-AzPowerB…
Script 1.2.0 Az.RecoveryServices Core,Desk {Get-AzRecoveryServicesBackupProperty, Get-AzRecov…
Script 1.1.0 Az.RecoveryServices Core,Desk {Get-AzRecoveryServicesBackupProperty, Get-AzRecov…
Script 1.0.0 Az.RedisCache Core,Desk {Remove-AzRedisCachePatchSchedule, New-AzRedisCach…
Script 1.0.0 Az.Relay Core,Desk {New-AzRelayNamespace, Get-AzRelayNamespace, Set-A…
Script 1.2.1 Az.Resources Core,Desk {Get-AzProviderOperation, Remove-AzRoleAssignment,…
Script 1.2.0 Az.Resources Core,Desk {Get-AzProviderOperation, Remove-AzRoleAssignment,…
Script 1.0.0 Az.ServiceBus Core,Desk {New-AzServiceBusNamespace, Get-AzServiceBusNamesp…
Script 1.0.1 Az.ServiceFabric Core,Desk {Add-AzServiceFabricApplicationCertificate, Add-Az…
Script 1.0.2 Az.SignalR Core,Desk {New-AzSignalR, Get-AzSignalR, Get-AzSignalRKey, N…
Script 1.7.0 Az.Sql Core,Desk {Get-AzSqlDatabaseTransparentDataEncryption, Get-A…
Script 1.5.0 Az.Sql Core,Desk {Get-AzSqlDatabaseTransparentDataEncryption, Get-A…
Script 1.1.0 Az.Storage Core,Desk {Get-AzStorageAccount, Get-AzStorageAccountKey, Ne…
Script 1.0.3 Az.Storage Core,Desk {Get-AzStorageAccount, Get-AzStorageAccountKey, Ne…
Script 1.0.0 Az.StreamAnalytics Core,Desk {Get-AzStreamAnalyticsFunction, Get-AzStreamAnalyt…
Script 1.0.1 Az.TrafficManager Core,Desk {Add-AzTrafficManagerCustomHeaderToEndpoint, Remov…
Script 1.1.2 Az.Websites Core,Desk {Get-AzAppServicePlan, Set-AzAppServicePlan, New-A…
Script 1.1.1 Az.Websites Core,Desk {Get-AzAppServicePlan, Set-AzAppServicePlan, New-A…
```
Contributor guide
Assessment
This issue has not been assessed yet.