почему эта команда не выполняется со сборкой TFS? - PullRequest
2 голосов
/ 30 мая 2019

У меня есть 2 сценария powershell

script1.ps1 содержит вызовы REST для Vault, который возвращает ответ json, содержащий некоторые ключи / значения.

Function getValues($token) {
    $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
    $headers.Add("X-Vault-Token", $token)
    $response = Invoke-RestMethod  -method GET -uri "https://vault.com:8243/v1/secret/vault/development" -ContentType 'application/json' -headers $headers
    $response.data| ConvertTo-Json  -depth 100
}
getValues $token

предположим, что один из этих ключей в ответе выглядит следующим образом:

key1:value123

script2.ps1 звонит scrip1.ps1 вот так

$currentDirectory = "D:\\Scripts"
$response = & "$currentDirectory\script1.ps1" | ConvertFrom-Json
$pass = $response[1]."key1"
$pass

этот блок выполняется нормально, если я тестирую локально, и я получаю value123 как вывод, как ожидалось

теперь я настроил задачу удаленной PowerShell WinRM на TFS как часть сборки, которая вызывает script2.ps1.

Конечно, я записываю почти все в файл журнала в моем script2, так что я могу видеть все выходные данные, кроме ответа. ответ не возвращается вообще!

$ pass не печатает ничего обратно при запуске сборки TFS, но локально печатает просто отлично

Есть ли что-то особенное, что я должен обернуть эту команду специально для TFS? я что-то здесь упускаю ??

1 Ответ

1 голос
/ 30 мая 2019

Я наконец-то понял проблему

Мы сохранили токен в переменных среды USER, из которых сценарию не удалось вызвать. Я думаю, что когда я тестировал, потому что я вошел в систему на сервере от имени указанного пользователя, скрипт работал, потому что он распознал пользователя и смог извлечь переменную среды.

Однако, когда я работаю из TFS с использованием удаленного Powershell, он не распознает переменную env пользователя.

Установка токена переменной env в переменных SYSTEM env сработала!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...