错误Get-AzureKeyVaultSecret:无法检索ServicePrincipal帐户

时间:2018-03-13 00:59:04

标签: powershell azure azure-pipelines azure-powershell

使用PowerShell,我可以在本地访问我的Azure KeyVault,提供密码并返回存储的密码。我也可以从我启动的VM中执行此操作。此外,我可以从KeyVault访问单个密码并使用它来模拟VSTS构建代理上的用户,但我无法访问其余存储的密码。是什么给了什么?

以下是我收到的消息:

  

[error] Get-AzureKeyVaultSecret:无法检索服务密钥   ServicePrincipal帐户   [hiddenaccountname] @ [companyaccount] .com上。请登录   再次提供此服务主体的凭据。在   PowerShell,为Azure Resource Manager执行Login-AzureRMAccount   cmdlet或Add-AzureAccount用于服务管理cmdlet。

     

...

     
      
  • CategoryInfo:CloseError:(:) [Get-AzureKeyVaultSecret],KeyNotFoundException
  •   
  • FullyQualifiedErrorId:Microsoft.Azure.Commands.KeyVault.GetAzureKeyVaultSecret
  •   

以下是我的代码在本节中的样子:

Login-AzureRmAccount -Credential $AzureCredential -ServicePrincipal -TenantId [abunchofnumbers]

$Password  = (Get-AzureKeyVaultSecret -VaultName "[nameOfVault]" -Name "[nameOfSecret]").SecretValueText

登录接受提供的凭据并登录,但Get-AzureKeyVaultSecret cmdlet失败,并且仅在构建期间在VSTS上。

任何想法,你这些奇怪而美妙的开发者?

1 个答案:

答案 0 :(得分:0)

[已解决 - 跟进]我的流程涉及一个Powershell脚本,通过使用Login-AzureRmAccount和Get-AzureKeyVaultSecret来模拟用户,以获取用户的密码,然后使用第二个Powershell脚本重新登录AzureRmAccount以获取更多信息来自KeyVault的密码。我交换了这两个脚本的顺序,问题就消失了。