面临以下代码的问题,用于将密钥从一个KV复制到另一个KV。secrets值始终检索null。
$keyvaultName = 'kv1'
$secrets = Get-AzKeyVaultSecret -VaultName $keyvaultName
$kvname='bkpkv2'
$keys =@{}
foreach ($secret in $secrets)
{
$secretName = $secret.name
$key = (Get-AzKeyVaultSecret -VaultName $keyvaultName -name $secretName).SecretValueText
$keys.Add("$secretName", "$key")
$hashed = ConvertTo-SecureString -String $key -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $kvname -Name $secret.name -Secretvalue $hashed
}发布于 2021-01-26 03:50:12
在当前版本的Az中,SecretValueText已被弃用。如果要查看密钥的解密文本,可以在Get-AzKeyVaultSecret上使用-AsPlainText开关。
$secretText = Get-AzKeyVaultSecret -VaultName $keyvaultName -name $secretName -AsPlainText您可能会遇到这样一种情况,即删除SecretValueText属性是一项破坏性的更改。然后,另一种选择是将SecretValueText属性添加回Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem对象。
# Update the PSKeyVaultSecretIdentityItem object type at the beginning of the session
$Script = { Get-AzKeyVaultSecret -VaultName $this.VaultName -Name $this.Name -AsPlainText }
Update-TypeData -TypeName 'Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem' -MemberName 'SecretValueText' -MemberType ScriptProperty -Value $Script
# SecretValueText property will contain decrypted secret for remainder of the session
$secretText = (Get-AzKeyVaultSecret -VaultName $keyvaultName -name $secretName).SecretValueTexthttps://stackoverflow.com/questions/65890888
复制相似问题