Invoke-WebRequest无法在ForEach循环内部工作

问题描述 投票:1回答:1

我正在尝试执行foreach循环以从AWS下载文件。当我在服务器本身运行foreach循环的Invoke-WebRequest -Uri $S3InstallerLoc -OutFile $S3OutFileoutside时,它会拉下我的测试文件。当我将它粘在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

}
powershell foreach
1个回答
0
投票

如果您在6.0之前运行Powershell版本并且在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

© www.soinside.com 2019 - 2024. All rights reserved.