使用 Azure CLI 创建 Azure Key Vault Secrets 在值中删除插入符 ^ 字符

Create Azure Key Vault Secrets with Azure CLI drops caret ^ character in value

我正在尝试使用 Azure Cli v2.9.0 创建一个新的 Azure Key Vault 机密(我们在我们的管道中使用这个版本,目前升级会很困难。)通过下面的命令,

az keyvault secret set --vault-name $myKeyVaultName -n $mySecretName --value "abc^def" 

该命令被接受并创建了一个新的秘密,但它从字符串中删除了插入符号 (^) 并导致秘密值 abcdef 而不是预期的 abc^def。

在我的测试过程中,我看到了来自 Powershell 的以下消息,但这种情况很少见: 无法使用 cp1252 编码对输出进行编码。不支持的字符将被丢弃。

插入符号在字符集中很奇怪 - https://en.wikipedia.org/wiki/Windows-1252#Code_page_layout

有没有办法 运行 此命令并让 Key Vault 接受带插入符号的值?

我可以重现你的问题。

实际上,这取决于您的环境,只有当您 运行 Powershell 中的命令时才会出现此问题,如果您 运行 Bash 中的 CLI 命令,它工作正常。

az keyvault secret set --vault-name joykeyvault -n testkey12 --value "abc^def"

因此,如果您想在 Powershell 环境中 运行 此命令,只需使用下面的行。

az keyvault secret set --vault-name joykeyvault -n testkey12 --value '"abc^def"'

如果您有任何特殊值要存储在 AKV 中,请在单引号 '"abcx^09|"' 下使用双引号,而不是 "abcx^09|"

AKV 储值 = abcx^09|