У меня есть 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? я что-то здесь упускаю ??