Você pode usar o BITS para fazer o download do seu pacote de software. Ele é projetado para usar apenas a largura de banda da rede ociosa, portanto, ele será baixado lentamente, caso a máquina já esteja fazendo o download de algo.
Depois, você pode esperar um pouco e monitorar o progresso do download. Se estiver muito lento, você pode suspender ou cancelar seu download. Se estiver tudo bem, basta deixá-lo completo.
A maneira mais fácil de invocar o BITS é o PowerShell. Aqui está um código para você começar:
$transfer = Start-BitsTransfer -Asynchronous -Source 'http://mirror.yandex.ru/ubuntu-releases/17.04/ubuntu-17.04-server-i386.iso' -Destination 'c:\Temp'
$bytesTransferred = 0
while($transfer.JobState -eq 'Connecting' -or $transfer.JobState -eq 'Transferring')
{
$delay = 5
Start-Sleep -Seconds $delay
if ($transfer.JobState -eq 'Transferring')
{
$bytesDelta = $transfer.BytesTransferred - $bytesTransferred
$bytesTransferred = $transfer.BytesTransferred
# Check if speed is less than 1 MB/s
if ($bytesDelta -lt (1MB * $delay))
{
Write-Warning 'Download is too slow, aborting'
Remove-BitsTransfer $transfer
# Also can use Suspend-BitsTransfer $transfer to pause and Resume-BitsTransfer $transfer to resume
break
}
}
}
if ($transfer.JobState -eq 'Transferred')
{
Complete-BitsTransfer $transfer
Write-Information 'Download complete'
}
else
{
Write-Error "Download error $($transfer.ErrorDescription)"
}
Salve o script com a extensão ps1
e use PowerShell -ExecutionPolicy Unrestricted -File YourScript.ps1
para chamá-lo a partir do arquivo em lote (ou simplesmente chamá-lo diretamente).