Get-AzKeyVaultSecret 无法读取 Powershell 中的秘密值
Get-AzKeyVaultSecret can't read secret value in Powershell
我无法读取我在 Key Vault 中的一个机密的值。我已使用我的 Azure 帐户登录,并且我拥有对所选 Key Vault 的完全权限。
我可以使用以下命令检索可用机密列表:
$keyVaultValue = (Get-AzKeyVaultSecret -VaultName 'name-of-key-vault')
然后写的时候看内容:
Write-Output $keyVaultValue
但是当我要求一个特定的密钥时,它只是 returns null:
$keyVaultValue = (Get-AzKeyVaultSecret -VaultName 'name-of-key-vault' -Name 'my-secret-name').SecretValueText
我检查了名称和订阅 ID,一切正确。我可以轻松地从门户网站读取值,但不能从我的 Windows PC 上的 powershell 读取值。
有什么建议吗?
SecretValueText
已弃用,您可以使用以下语法将值检索为纯文本:
$keyVaultValue = Get-AzKeyVaultSecret -VaultName 'name-of-key-vault' -Name 'my-secret-name'
$keyVaultValue.SecretValue | ConvertFrom-SecureString -AsPlainText
可以找到更多信息和示例 here。
如果你想显示所有 key-vault 机密名称及其密钥值,那么你可以在 powershell 中使用它
$secrets=Get-AzKeyVaultSecret -VaultName 'key-vault-name'
$secrets | % {Write-Output "$($_.name) $($(Get-AzKeyVaultSecret -VaultName $_.VaultName -Name $_.Name).SecretValue | ConvertFrom-SecureString -AsPlainText)" }
尝试使用这个函数:
function GetSecretValue
{
param(
[String]$keyvaultName,
[String]$secretName
)
Write-Host "Retrieving secret $secretName from $keyvaultName... " -NoNewline
if ((Get-Command Get-AzKeyVaultSecret).ParameterSets.Parameters.Name -contains "AsPlainText")
{
# Newer Get-AzKeyVaultSecret version requires -AsPlainText parameter
$secretValue = Get-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName -AsPlainText
}
else
{
$secretValue = (Get-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName).SecretValueText
}
Write-Host "ok"
return $secretValue
}
用法示例:
$keyVaultValue = GetSecretValue "name-of-key-vault" "my-secret-name"
我无法读取我在 Key Vault 中的一个机密的值。我已使用我的 Azure 帐户登录,并且我拥有对所选 Key Vault 的完全权限。
我可以使用以下命令检索可用机密列表:
$keyVaultValue = (Get-AzKeyVaultSecret -VaultName 'name-of-key-vault')
然后写的时候看内容:
Write-Output $keyVaultValue
但是当我要求一个特定的密钥时,它只是 returns null:
$keyVaultValue = (Get-AzKeyVaultSecret -VaultName 'name-of-key-vault' -Name 'my-secret-name').SecretValueText
我检查了名称和订阅 ID,一切正确。我可以轻松地从门户网站读取值,但不能从我的 Windows PC 上的 powershell 读取值。
有什么建议吗?
SecretValueText
已弃用,您可以使用以下语法将值检索为纯文本:
$keyVaultValue = Get-AzKeyVaultSecret -VaultName 'name-of-key-vault' -Name 'my-secret-name'
$keyVaultValue.SecretValue | ConvertFrom-SecureString -AsPlainText
可以找到更多信息和示例 here。
如果你想显示所有 key-vault 机密名称及其密钥值,那么你可以在 powershell 中使用它
$secrets=Get-AzKeyVaultSecret -VaultName 'key-vault-name'
$secrets | % {Write-Output "$($_.name) $($(Get-AzKeyVaultSecret -VaultName $_.VaultName -Name $_.Name).SecretValue | ConvertFrom-SecureString -AsPlainText)" }
尝试使用这个函数:
function GetSecretValue
{
param(
[String]$keyvaultName,
[String]$secretName
)
Write-Host "Retrieving secret $secretName from $keyvaultName... " -NoNewline
if ((Get-Command Get-AzKeyVaultSecret).ParameterSets.Parameters.Name -contains "AsPlainText")
{
# Newer Get-AzKeyVaultSecret version requires -AsPlainText parameter
$secretValue = Get-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName -AsPlainText
}
else
{
$secretValue = (Get-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName).SecretValueText
}
Write-Host "ok"
return $secretValue
}
用法示例:
$keyVaultValue = GetSecretValue "name-of-key-vault" "my-secret-name"