我有一个CSV文件的URL,可以在浏览器中下载并打开该文件,没有任何问题。我尝试使用PowerShell下载此文件,但没有成功。我尝试使用Invoke-WebRequest、Start-BitsTransfer和webrequest对象,但没有成功。
Invoke-WebRequest
Start-BitsTransfer
c90pui9n1#
Invoke-WebRequest附带了一个参数,用于将其结果存储在文件中:-OutFile
-OutFile
Invoke-WebRequest $myDownloadUrl -OutFile c:\file.ext
如果在发送请求之前需要授权,请执行以下操作:
Invoke-WebRequest $myAuthUrl /* whatever is neccesary to login */ -SessionVariable MySession Invoke-WebRequest $myDownloadUrl -WebSession $MySession
要确定登录发生的表单布局,您可以使用Invoke-WebRequests返回对象。它将收集HTML(可能仅适用于Windows)。登录里程可能会因双因素身份验证活动与否等因素而异。也许你可以创建一些秘密链接到您的文件,不需要认证或可能谷歌允许您创建一些私人访问令牌排序,它可以与您请求一起发送给我们授权头。
hgtggwj02#
TLDR回答*:方法1,默认为同步**
Invoke-WebRequest $url -OutFile $path_to_file
(if出现错误 "...无法创建SSL/TLS安全通道。" 请参阅Powershell Invoke-WebRequest Fails with SSL/TLS Secure Channel)
方法2,默认为同步**
(New-Object System.Net.WebClient).DownloadFile($url, $path_to_file)
方法3,异步,可能比其他两种方法慢得多,但对带宽使用非常温和(它使用BITS service)。
Import-Module BitsTransfer Start-BitsTransfer -Source $url -Destination $path_to_file
备注:
pbgvytdp3#
有一段时间,我一直在使用PS脚本下载PowerBI双月版,并使用BITS,它非常可靠,而且由于我删除了Start-BitsTransfer末尾的-Asynchronous,它现在变得更强大了
-Asynchronous
$url = "https://download.microsoft.com/download/8/8/0/880BCA75-79DD-466A-927D-1ABF1F5454B0/PBIDesktopSetup.exe" $output = "%RandomPath%\PowerBI Pro\PBIDesktopSetup.exe" $start_time = Get-Date Import-Module BitsTransfer Start-BitsTransfer -Source $url -Destination $output #Commented out below because it kept creating "Tmp files" #Start-BitsTransfer -Source $url -Destination $output -Asynchronous
3条答案
按热度按时间c90pui9n1#
Invoke-WebRequest
附带了一个参数,用于将其结果存储在文件中:-OutFile
如果在发送请求之前需要授权,请执行以下操作:
要确定登录发生的表单布局,您可以使用Invoke-WebRequests返回对象。它将收集HTML(可能仅适用于Windows)。登录里程可能会因双因素身份验证活动与否等因素而异。也许你可以创建一些秘密链接到您的文件,不需要认证或可能谷歌允许您创建一些私人访问令牌排序,它可以与您请求一起发送给我们授权头。
hgtggwj02#
TLDR回答*:
方法1,默认为同步**
(if出现错误 "...无法创建SSL/TLS安全通道。" 请参阅Powershell Invoke-WebRequest Fails with SSL/TLS Secure Channel)
方法2,默认为同步**
方法3,异步,可能比其他两种方法慢得多,但对带宽使用非常温和(它使用BITS service)。
备注:
**:如果您要异步下载,请阅读帮助页面
pbgvytdp3#
有一段时间,我一直在使用PS脚本下载PowerBI双月版,并使用BITS,它非常可靠,而且由于我删除了
Start-BitsTransfer
末尾的-Asynchronous
,它现在变得更强大了