Сценарий Powershell не ожидает ответа от командлета Invoke-RestMethod - PullRequest
0 голосов
/ 07 января 2019

Я новичок в powershell. У меня есть скрипт powershell, который в основном делает запрос REST API и возвращает ответ JSON. Но у меня есть проблема с командлетом Invoke-RestMethod. Я имею в виду, что скрипт иногда не ждет ответа и переходит к следующей строке кода.

Есть ли какая-то хитрость в powershell, которая просит код дождаться ответа API и затем запустить оставшийся код. Ниже мой код

if ($EventID -eq '4726') { 
    $ad_user = "$TargetUsername@avayaaws.int" 

    $jsonbody = @{

                   "setupName" = "avayadev-or"
                   "instanceName" = "000_JumpServer_DMZ"
                   "command" = "$Command"
                    "parameters" = @{
                                     "mobile" = "$getMobileAttr"
                                     "ad_user"="$ad_user"
                                     "label" ="$environment"
                                    }
                   "eventToken" = "optional"

                  } | ConvertTo-Json

    #$response = Start-Job {
    #    Invoke-RestMethod -Uri $uri -Method $verb -Body $jsonbody -Headers $header 
    #} | wait-job | receive-job 
    #$response = Invoke-RestMethod -Uri $uri -Method $verb -Body $jsonbody -Headers $header
    $response = Invoke-WebRequest -Uri $uri -Method $verb -Body $jsonbody -Headers $header
    $EventTrigger = $translEvent4726
    Write-Output "Response is: $response"
    PushLogs -transaction $EventTrigger -adUser $ad_user -transResult $response

}

Я пробовал много способов, таких как использование Out-Null и Wait-Job, Recieve-Job, но не смог заставить его работать. Любая помощь очень ценится.

...