2013-12-18 1 views
4
[string] $fileName = "en_sql_server_2008_r2_developer_x86_x64_ia64_dvd_522665.iso" 
[string] $url = "http://installers.abc/iso/$filename" 
[string] $tempPath = "c:\balpreet" 

function Download-Iso { 
    Param(
    [string] $FileName, 
    [string] $Url, 
    [string] $destinationFolder 
) 

    [string] $destination = Join-Path -Path $tempPath -ChildPath $fileName 
    write-host "downloading from : $url to $destination" 
    $client = new-object System.Net.WebClient 
    $client.DownloadFile($Url, $destination) 

} 

Download-Iso -FileName $fileName -Url $url -DestinationFolder = $tempPath 

http를 통해 액세스 할 수있는 원격 위치에서 4.07GB (4,380,329,984 바이트) ISO를 다운로드하려고합니다.System.Net.Webclient 만 다운로드 81.4 MB (85,363,075 바이트)

Windows 7 : 다운로드 완료 4.07GB 파일.

Windows Server 2008 R2 : 다운로드 만 완료하면 81.4 MB (85,363,075 바이트)로 다운로드됩니다. 코드가 오류를 던지는 것이 아니라 전체 파일을 다운로드하는 것은 아닙니다.

실마리가 있습니까?

+0

Windows Server 2008 R2 시스템의 C 드라이브에서 디스크 공간이 부족할 수 있습니까? – alroc

+1

다른 파일에서도 이러한 현상이 발생합니까? 일부 기업 방화벽에도 문제가있었습니다. 내 작업에서 "똑똑한"방화벽은 가끔 특정 파일이 바이러스라고 생각하고 연결을 끊습니다 ... 그리고 항상 같은 시점에서 그것을 죽이는 것처럼 보입니다. 주위에 유일한 방법은 집에서 파일을 다운로드하고 USB 키로 가져 오는 것입니다. – HAL9256

답변

1

81.4 MB (85,363,075 바이트)가 전송 된 후 요청을 삭제 한 것은 내부 네트워크 프록시였습니다. 하지만 이상한 일은 입니다. webclient는 예외를 던지지 않고 다운로드가 성공한 것으로 가장했습니다.

프록시를 거치지 않고 요청이 처리되도록 프록시를 null로 만드는 것이 수정되었습니다.

$client.proxy=$null # get rid of proxy 
$client.DownloadFile($Url, $destination)