Учетные данные PowerShell являются недействительными для запросов REST API - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть много запросов, которые нужно сделать, сотни действительно.Я запускаю простой цикл for, который затем запускает новый запрос для каждого объекта в массиве.

Странно то, что изначально все эти запросы выполняются успешно.Тем не менее, как только мы доберёмся до последних сотен, например около 500, он будет разбиваться и постоянно выдавать следующую ошибку для каждого запроса

Invoke-WebRequest : Access Denied Your credentials could not be authenticated: "Credentials are missing.". You will not be permitted access until your credentials can be verified.

Я нашел несколько ссылок на эту проблему:что-то, что регулярно возникает в отношении прокси в powershell, но, честно говоря, не может понять их решения.

Соответствующие ссылки:

Может кто-нибудь помочь мне разобраться в этом?Вот мой код полностью для лучшего разъяснения

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$user = '*********'
$base = "https://*********.com/api/xm/1/groups"
$pass = ConvertTo-SecureString '*********' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $pass
$req  = Invoke-WebRequest -Credential $cred -Uri https://*********.com/api/xm/1/groups?limit=999
$res  = ConvertFrom-Json $req.Content
$content = $res.data

for($x = 0; $x -lt $content.length; $x++) {
    $group_name = $content[$x].targetName
    $del_path   = "$base/$group_name/shifts/MAX"
    $del_path_2 = "$base/$group_name/shifts/MAX-Default Shift"

    Invoke-RestMethod -Credential $cred -Uri $del_path -Method DELETE
    Invoke-RestMethod -Credential $cred -Uri $del_path_2 -Method DELETE

    if ($x -eq 200 -or $x -eq 350 -or $x -eq 500) {
        Start-Sleep -s 30
    }
}
...