Я работаю над сценарием powershell для подключения к API через Invoke-RestMethod.Призыв к API является публичным, без аутентификации.Он работает из PowerShell, но не может выполнить его в сценарии PS1.Моя операционная система работает с ядром powershell 6.1.3
Тестирование внутри powershell работает должным образом:
pi@raspberry:~/Documents $ pwsh
PowerShell 6.1.3
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /home/pi/Documents> $salida = Invoke-RestMethod -Uri 'https://api.binance.com/api/v1/time' -Method Get
PS /home/pi/Documents> Write-Host "Time: " $salida
Time: @{serverTime=1569106660940}
PS /home/pi/Documents>
Но с этим сценарием ps1 (сценарий имеет разрешения на выполнение):
#!/usr/bin/pwsh
$salida = Invoke-RestMethod -Uri 'https://api.binance.com/api/v1/time' -Method Get
Write-Host "Time: " $salida
Я получаю эту ошибку:
pi@raspberry:~/Documents $ sudo ./a.ps1
Invoke-RestMethod : Authentication failed, see inner exception.
At /home/pi/Documents/a.ps1:2 char:11
+ $salida = Invoke-RestMethod -Uri 'https://api.binance.com/api/v1/time ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Method: GET, Re...rShell/6.1.3
}:HttpRequestMessage) [Invoke-RestMethod], HttpRequestException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Time:
pi@raspberry:~/Documents $