从 azure 密钥保管库中获取 powershell 脚本变量中的秘密值

时间:2021-02-08 13:20:49

标签: powershell powershell-2.0 azure-powershell

我需要将 Azure Key Vault 中的秘密值设置为一个变量,以便在进一步的任务中使用。我尝试了下面的脚本,但它给出了错误:找不到模块:'Az.Accounts' 版本:''。 我知道我可以直接使用变量,但由于我正在构建通用管道,因此需要将其设置为公共变量

我尝试过的脚本:

- task: AzurePowerShell@4
            inputs:
              azureSubscription: 'SUB1'
              ScriptType: 'InlineScript'
              Inline: |
                $secret = Get-AzKeyVaultSecret -VaultName '$(KeyVaultName)' -Name $(sqlServerAdminUsername)
                                $ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret.SecretValue)
                                try {
                                   $SqlServerUsername = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)
                                } finally {
                                   [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
                                }
              azurePowerShellVersion: 'LatestVersion'
              pwsh: true
            condition: and(succeeded(), eq(variables['EnvironmentType'], 'Dev'))

1 个答案:

答案 0 :(得分:0)

看看这个here

修复可以是:

  • 尝试切换到 Powershell 任务的第 3 版和第 5 版并运行。
  • 在 Linux 托管代理而非 Windows 中运行 Powershell V4 任务。
  • similar issue. 运行此 powershell 脚本。