powershell - 从 azure key vault 中的 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'))
解决方案
看看这个类似的问题。
修复可以是:
- 尝试切换到 Powershell 任务的版本 3 和 5 并运行。
- 在 Linux 托管代理而不是 Windows 中运行 Powershell V4 任务。
- 从Azure CLI 任务运行此 powershell 脚本。
推荐阅读
- mysql - 如何在laravel中执行带参数调用的过程查询
- python - Pycharm:导入 ssl 模块时遇到问题
- regex - 重定向 htaccess 正则表达式在浏览器中保持相同的 URL
- java - 为什么我的测试在单次执行中运行时间 <1 秒,但在 Maven 构建中运行时间超过 20 秒?
- javascript - 使用 javascript 获取元素的默认 css 值
- javascript - Onchange 事件未触发 EJS
- botframework - 网络聊天没有显示结果
- c++ - 如何使用nlohmann检查c ++中嵌套json中是否存在密钥
- vba - 如何通过 VBA 选择特定幻灯片
- php - 如何在函数中使用 PHPSpreadsheet 类