Invoke-WebRequest не работает внутри цикла ForEach - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь выполнить цикл foreach для загрузки файла из AWS. Когда я запускаю Invoke-WebRequest -Uri $S3InstallerLoc -OutFile $S3OutFile вне цикла foreach на самом сервере, он записывает мой тестовый файл. Когда я втыкаю его в цикл foreach, файл не опускается. Когда я пытаюсь сделать это с другого сервера, я получаю следующую ошибку: Invoke-WebRequest: базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.

Вот весь сценарий:

$Servers = "AWS-GPOTEST"
$S3InstallerLoc = "https://s3-us-west-2.amazonaws.com/bucketname/test.txt"
$S3OutFile = "C:\Windows\Temp\Test.txt"

ForEach ($Server in $Servers)

{

Invoke-WebRequest -Uri $S3InstallerLoc -OutFile $S3OutFile

}

1 Ответ

0 голосов
/ 13 сентября 2018

В случае, если вы используете версию Powershell до 6.0 и запускаете ее в сеансе WinRM, вам следует использовать параметр UseBasicParsing.

Как в:

Invoke-Command -ComputerName $Servers -ScriptBlock {Invoke-WebRequest -Uri $Using:S3InstallerLoc -OutFile $Using:S3OutFile -UseBasicParsing}

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-6

Использование локальных переменных в скриптах:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_variables?view=powershell-6#using-local-variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...