VSTS Powershell Secret Variable
Как я могу использовать секретную переменную в своем скрипте powershell в своем определении выпуска?
Я сталкивался с этим, но это не работает. Каталог "$($env:AGENT_HOMEDIRECTORY)\agent\worker\Modules"
не существует на новых агентов.
Какой правильный способ доступа к секретной переменной на новых хостах? Моя версия агента 2.114.0.
3 ответа
В принципе, вы должны передавать значение секретной переменной через параметры PowerShell.
Например:
Переменная: password (secret)
задача: PowerShell
Аргументы: -pass $(password)
Автор сценария:
Param(
[String]$pass
)
if ($pass) { Write-Host "variable is NOT null" }
if (!$pass) { Write-Host "variable is null" }
Вы можете добиться этого сейчас без параметров, см. Мой сценарий ниже
ht tps:https://stackru.com/images/5ff50bd5551461c0f67d0cf6853f797db739bbc9.png
Write-Host "Client Id " $env:client_id;
Write-Host "Client Secret" $(client_secret)
$applicationId = $env:client_id;
$clientsec = "$(client_secret)" | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationId, $clientsec
хорошо, но как это сделать при выполнении скрипта, когда "client_secret" - это переменная, например, ниже
PS C:\Users\xxx>>$test
ClientSecret - db @{value=; isSecret=True}
ClientSecret - Хранилище @{value=; isSecret=True}
$ тест | ForEach-Object {write-host "$($_. Keys)"}
Я не могу восстановить секретную переменную для "ConvertTo-SecureString"