У меня есть 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
Как видите, метод требует $token
.
Этот токен сохранен в системной переменной.
Теперь я звоню script1
в script2
, чтобы получить ключи / значения, подобные этому:
$resp = & ".\script1.ps1" | convertfrom-json
это прекрасно работает, и я получаю значения по мере необходимости.
однако я тестирую, если в будущем появятся ошибки, например, путем удаления токена из системной переменной.
Это $resp
вернуло:
errors
------
{missing client token}
большой. Теперь я хочу выйти из сценария, если это произойдет.
Я попытался проверить, как это:
if($resp.tostring().contains("error"))
{
write-output "error!"
exit 1
}
но он никогда не завершался и не возвращал ошибку вывода!
как мне найти совпадение в этом случае?