【问题标题】:Error when using Tags during certificate import through Azure PowerShell在通过 Azure PowerShell 导入证书期间使用标签时出错
【发布时间】:2018-09-26 15:41:55
【问题描述】:

问题描述:(请参阅下面的屏幕转储以供参考) 使用带有 Import-AzureKeyVaultCertificate cmdlet 的标记失败。 即使我收到错误消息(如下所示),证书也可以导入密钥库。 但是,我无法使用 Get-AzureKeyVaultCertificate cmdlet 检索证书,即使我可以使用 Get-AzureKeyVaultSecret cmdlet(标签显示正确)。 附加信息 • 如果我从 Azure 门户中删除标签或重新导入不带 -Tag 的证书,我仍然会收到相同的错误(无法投射对象)。 • 如果我删除证书并重新导入不带标签的证书,一切正常。

需要帮助: 我正在使用 5.1.2 Azure PowerShell。请告知我错过了什么。谢谢。

PS C:\Users\tonychou> $certificateTag = @{
    type = "certificate";
    subjectname = "rsppe-microsoft-com";
    alternatename = "dss";
    environment = "Test"
    };

PS C:\Users\tonychou> $certificatePasswordSecuredString = ConvertTo-SecureString $certificatePassword -AsPlainText -Force;
Import-AzureKeyVaultCertificate -VaultName $kvName -CertificateName $certInCertName -FilePath $certificatePfxFile -Password $certificatePasswordSecuredString -Tag $certificateTag;

Import-AzureKeyVaultCertificate : Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.String]' to type 'System.Collections.Hashtable'.
At line:2 char:1
+ Import-AzureKeyVaultCertificate -VaultName $kvName -CertificateName $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Import-AzureKeyVaultCertificate], InvalidCastException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.ImportAzureKeyVaultCertificate

PS C:\Users\tonychou> $certInCertificate = Get-AzureKeyVaultCertificate -VaultName $kvName -Name $certInCertName;
Get-AzureKeyVaultCertificate : Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.String]' to type 'System.Collections.Hashtable'.
At line:1 char:22
+ ... rtificate = Get-AzureKeyVaultCertificate -VaultName $kvName -Name $ce ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-AzureKeyVaultCertificate], InvalidCastException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.GetAzureKeyVaultCertificate

PS C:\Users\tonychou> $certInSecret = Get-AzureKeyVaultSecret -VaultName $kvName -Name $certInCertName;


PS C:\Users\tonychou> $certInCertificate 

PS C:\Users\tonychou> $certInSecret


SecretValue     : System.Security.SecureString
SecretValueText : MIIXegIBAzCCFzoGCSqGSIb3DQEHAaCCFysEghcnMIIXIzCCBgQGCSqGSIb3DQEHAaCCBfUEggXxMIIF7TCCBekGCyqGSIb3DQEMCgECoIIE9jCCBPIwHAYKKoZIhvcNAQwBAzAOBAgn0z9KUgiVSwICB9AEggTQ+38U79mo15qmAm7r0IgpGlveZFMHwqYt/LmEZOUyTKXv6GWHxkSoy/+dsa2XkVFruWas5WgqksMuwxY
                  43kum42JCzSHIkEzAbiN3zZNZWM7JDLaXBooR2bpOR49fdGdy44RmQjFGkU7w2cYLMjB+WSBQ9tt2xw4W1fJnv4d3vO44BQ/c2n1aHBZjmobdSrIDtpK8h+aiZyUrNix6wlifthI884h09rlF6ipBDicbgLn4NbpYPzfZlpa304fU9c7h0j/IDpdOi2zZOVT2Q3oc9ouMuSaKBC9CKE3Q99UBwyX/tZjM/A/uuW5nh3KQZ8
                  IJciW7/odBt3b9venZOHHbAZDns5iIzwop3hzSEDbQTqQ3hffdFEyUexHsq5AP2syveZYWlIrDpe9YJVB 

PS C:\Users\tonychou> Get-Module -ListAvailable | ?{$_.Name -eq "Azure"}


    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands                                                                                                                                                                                       
---------- -------    ----                                ----------------                                                                                                                                                                                       
Script     5.1.2      Azure                               {Get-AzureAutomationCertificate, Get-AzureAutomationConnection, New-AzureAutomationConnection, Remove-AzureAutomationConnection...} 

【问题讨论】:

  • 即使我导入没有标签的证书,然后手动添加标签,也会出现同样的错误。使用 Get-AzureKeyVaultCertificate cmdlet 检索证书时,我仍然收到以下错误:Get-AzureKeyVaultCertificate : Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.String]' to type ' System.Collections.Hashtable'"。
  • 运行 Azure PowerShell 5.1.1 的人没有遇到此问题。
  • 确认安装 PowerShell 6.1.0 和 Az 模块后工作正常。谢谢。

标签: azure-keyvault


【解决方案1】:

我们建议迁移到 Powershell 6.0.0 及更高版本

【讨论】:

  • 是否有任何有关错误或解决方法的详细信息?这对于您不经常使用此 cmdlet 以避免必须安装版本 6 的情况很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
  • 2017-05-12
相关资源
最近更新 更多