Download big files with PowerShell

PowerShell limits remote connections (to around 128MB for older versions). You can increase that limit by using Set-Item .\MaxMemoryPerShellMB . But this may not fix the problem for very large files.

Best option for those would be to use BITS

Example:

$url = "http://files.net/test/file1.test"
$output = "$PSScriptRoot\file1.test"
$start_time = Get-Date

Import-Module BitsTransfer

Start-BitsTransfer -Source $url -Destination $output
***OR***
Start-BitsTransfer -Source $url -Destination $output -Asynchronous

Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"

Alternately, try .Net.WebClient:

$url = "http://files.net/test/file1.test"
$output = "$PSScriptRoot\file1.test"
$start_time = Get-Date
    $wc = New-Object System.Net.WebClient
    $wc.DownloadFile($url, $output)
    ***OR***
    (New-Object System.Net.WebClient).DownloadFile($url, $output)

    Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"