iso文件太大不能拷貝(iso文件太大不能拷貝到u盤怎么辦)使用BITS和PowerShell通過不可靠的網絡復制大文件通常,在本地和全局網絡中,使用SMB,FTP或HTTP協議在設備之間傳輸文件。所有這些協議的問題在于恢復大文件的下載會遇到一些麻煩,如果網絡速度慢或不可靠,則可能會變得更糟。此外,使用這些協議復制文件時,將使用服務器和收件人之間的所有可用帶寬,這可能會對網絡性能和其他網絡應用程序的運行產生負面影響(并非總是可以在網絡上配置正確的QoS策略)設備)。在本文中,我們將考慮如何使用BITS協議和PowerShell通過慢速或不穩定的網絡復制大文件。BITS協議BITS(后臺智能傳輸服務)是一種Windows服務,用于在系統之間傳輸文件。您可以使用BITS協議下載和上傳文件。當執行自動Windows更新(包括從WSUS服務器下載更新的情況),從SCCM分發點接收程序等時從服務器接收文件時,計算機將使用此協議。BITS協議的優點:BITS是一種智能協議,它能夠控制通信信道使用的帶寬,并且不會影響其他網絡應用程序和服務的運行。BITS只能使用空閑(未分配)帶寬,并在傳輸過程中動態更改數據速率(如果其他應用程序增加了網絡使用率,BITS客戶端可以降低網絡上的數據傳輸速率);文件下載可以在對用戶透明的后臺模式下進行;即使計算機和客戶端之間的通信通道斷開,或者在計算機重新啟動后,處于恢復模式的BITS作業也會自動繼續。您可以暫停或繼續通過BITS下載,而不會丟失數據;注意。robocopy.exe實用程序還提供了通過網絡恢復文件復制的功能,如果連接斷開,該實用程序使您可以恢復下載文件。BITS允許您管理下載作業的優先級;計算機之間的文件傳輸發生在端口80(HTTP)或443(HTTPS)上,因此您不必在防火墻上打開其他端口。例如,端口445(在通過SMB協議復制文件時使用)(不要忘記,舊版本的SMB 電腦 1.0協議中存在許多漏洞);BITS收件人和服務器端不一定需要已部署的IIS服務器。因此,BITS是在慢速和不穩定的網絡(衛星信道,GPRS連接等)上傳輸大文件的首選協議。BITS:OS和PowerShell版本要求BITS協議出現在Windows XP中,其中可以使用bitsadmin.exe實用程序來管理BITS任務。該實用程序仍受支持,但已棄用。若要管理BITS作業,最好使用特殊的PowerShell cmdlet。要在這種情況下工作,您需要的操作系統不低于Windows Vista或Windows Server 2008和PowerShell 2.0或更高版本。Windows 10和Windows Server 2016/2012 R2的現代版本完全支持BITS。提示。也可以使用Windows Server 2003。在這種情況下,您將必須安裝KB 923845更新和PowerShell 2.0。客戶端和服務器端都需要BITS支持。如何使用PowerShell通過BITS協議下載文件?假設您要下載存儲在IIS HTTP服務器(http://10.1.1.18/erd65_32.iso)上的大型ISO文件。假定允許對該URL進行匿名訪問(以后我們將考慮通過身份驗證訪問URL)。首先,在PowerShell會話中導入BITS模塊:Import-Module BitsTransfer導入模塊后,所有可用命令的列表可以顯示如下:get-command *-BITS*如您所見,有8個cmdlet可用:添加位文件完整位傳輸獲取位傳輸Remove-BitsTransfer恢復位傳輸設置位傳輸起始位傳輸掛起比特轉移Add-BitsFileComplete-BitsTransferGet-BitsTransferRemove-BitsTransferResume-BitsTransferSet-BitsTransferStart-BitsTransferSuspend-BitsTransfer使用BITS在計算機之間同步文件傳輸在啟動BitsTransfe [R cmdlet允許您下載的文件通過HTTP(S)(如調用-的WebRequest cmdlet的),以及從網絡共享文件夾(通過SMB)。要使用BITS協議從指定的URL下載文件并將其保存到本地目錄C:\ Temp,請使用以下命令:Start-BitsTransfer –source http://10.1.1.18/erd65_32.iso -destination c:\temp消息“ 這是使用后臺智能傳輸服務(BITS)的文件傳輸”表示正在使用BITS下載指定的文件。在這種情況下,該cmdlet已開始以同步模式下載ISO文件。下載類似于通過文件資源管理器或使用Copy-Item cmdlet復制文件的通常過程。屏幕上顯示一個進度條,其中顯示下載狀態。如果重新啟動計算機,下載將不會繼續(您需要再次下載整個文件)。在異步模式下使用BITS通過網絡傳輸大文件BITS下載也可以以異步模式開始。為此,在上面顯示的命令中添加–asynchronous參數。在這種模式下,如果發生某種情況(服務器或客戶端重新啟動,通信通道中斷等),則在恢復源之后,BITS作業將自動恢復,并且從連接中斷的那一刻起,文件下載將繼續:Start-BitsTransfer -source http://10.1.1.18/erd65_32.iso -destination c:\temp -asynchronous重要的。默認情況下,Start-BitsTransfer以Foreground優先級(可能的最高優先級)運行。假定以這種模式開始的下載將與其他進程爭奪信道帶寬。為了避免這種情況,您必須顯式設置其他優先級作為命令的參數,例如,-Priority low:Start-BitsTransfer -source http://10.1.1.18/erd65_32.iso -destination c:\temp -asynchronous -Priority low異步BITS任務在后臺運行,并且文件下載過程未顯示在屏幕上。可以使用Get-BitsTransfer命令從PowerShell控制臺獲取 BITS作業的狀態:Get-BitsTransfer | fl該命令返回傳輸狀態(在這種情況下,傳輸已結束:已傳輸),有關傳輸的字節數,總文件大小,文件創建時間和任務完成時間的信息。您可以以表格形式查看計算機上運行的所有BITS任務的狀態:Get-BitsTransfer | select DisplayName, BytesTotal, BytesTransferred, JobState | Format-Table -AutoSize使用異步傳輸模式時,將創建帶有TMP擴展名的臨時文件(默認情況下,它在Windows資源管理器中隱藏)。要將其轉換為源文件(存儲在源服務器上),請運行命令Complete-BitsTransfer:Get-BitsTransfer | Complete-BitsTransfer然后將BITS下載任務視為已完成,并已從作業列表中刪除。您可以將本地文件上傳到遠程Windows文件服務器上的網絡共享文件夾。為此,請使用以下命令(為方便起見,您可以指定復制作業的名稱):Start-BitsTransfer -Source C:\iso\w10_1809.iso -Destination \\manch-fs1\iso -Asynchronous -DisplayName CopyISOtoMan要臨時掛起BITS任務,請運行:Get-BitsTransfer -Name CopyISOtoMan | Suspend-BitsTransfer若要繼續BITS作業,請使用Resume-BitsTransfer cmdlet:Get-BitsTransfer -Name CopyISOtoMan | Resume-BitsTransfer -Asynchronous您可以使用Add-BitsFile cmdlet將其他文件添加到BITS任務中:Get-BitsTransfer -Name CopyISOtoMan | Add-BitsFile -Source C:\iso\w10msu\* -Destination \\manch-fs1\iso -Asynchronous要刪除計算機上的所有BITS下載任務(包括其他用戶啟動的任務),請運行以下命令:Get-BitsTransfer -Allusers|Remove-BitsTransfer您無法取消在系統帳戶下運行的BITS作業(錯誤0x80070005“無法取消作業”)。要取消此類任務,您需要在SYSTEM下執行Remove-BitsTransfer命令。如果存儲文件的服務器需要用戶身份驗證,則以下命令將允許顯示一個窗口來指定訪問資源的憑據:Start-BitsTransfer -source http://10.1.1.18/erd65_32.iso -destination c:\temp -asynchronous -Priority low -Authentication NTLM -Credential Get-Credential為了使跟蹤BITS任務的結果更容易,您可以使用一個簡單的腳本,該腳本可以跟蹤任務進度,并且每隔幾秒鐘在屏幕上顯示下載百分比。下載結束后,腳本會自動將TMP文件轉換為源格式:Import-Module BitsTransfer$bitsjob = Start-BitsTransfer -Source http://10.1.1.18/erd65_32.iso -Destination c:\temp -Asynchronouswhile( ($bitsjob.JobState.ToString() -eq 'Transferring') -or ($bitsjob.JobState.ToString() -eq 'Connecting') ){Write-host $bitsjob.JobState.ToString()$Proc = ($bitsjob.BytesTransferred / $bitsjob.BytesTotal) * 100Write-Host $Proc “%”Sleep 3}Complete-BitsTransfer -BitsJob $bitsjob如何使用BITS復制目錄內容?如前所述,BITS不需要Web服務器,這意味著我們可以直接從其他Windows計算機或網絡共享文件夾復制文件:Start-BitsTransfer -Source \\lon-rep01\os\RHEL4.8-x86_64-AS-DVD.iso -Destination c:\temp -AsynchronousBitsTransfer無法從特定文件夾或其他程序使用的文件中遞歸地復制所有文件和文件夾。為了從指定的網絡共享文件夾復制所有文件和子目錄,請使用此腳本(您可以首先檢查目標目錄是否存在并創建它):Import-Module BitsTransfer$Source="\\lond-rep01\share\"$Destination="c:\tmp\"if ( -Not (Test-Path $Destination)){$null = New-Item -Path $Destination -ItemType Directory}$folders = Get-ChildItem -Name -Path $source -Directory -Recurse$bitsjob = Start-BitsTransfer -Source $Source\*.* -Destination $Destination -asynchronous -Priority lowwhile( ($bitsjob.JobState.ToString() -eq 'Transferring') -or ($bitsjob.JobState.ToString() -eq 'Connecting') ){Sleep 4}Complete-BitsTransfer -BitsJob $bitsjobforeach ($i in $folders){$exists = Test-Path $Destination\$iif ($exists -eq $false) {New-Item $Destination\$i -ItemType Directory}$bitsjob = Start-BitsTransfer -Source $Source\$i\*.* -Destination $Destination\$i -asynchronous -Priority lowwhile( ($bitsjob.JobState.ToString() -eq 'Transferring') -or ($bitsjob.JobState.ToString() -eq 'Connecting') ){Sleep 4}Complete-BitsTransfer -BitsJob $bitsjob如何使用PowerShell和BITS在HTTP Server上上傳文件?使用BITS,您不僅可以從HTTP服務器下載文件,還可以將其上傳到遠程Web服務器。為此,必須在目標服務器上安裝具有Bits Server Extension組件的IIS Web 服務器。在“ 位上傳”部分的IIS虛擬目錄的設置中,您需要啟用“ 允許客戶端上傳文件 ”選項。如果使用匿名身份驗證,則必須允許匿名用戶在NTFS權限級別上寫入目錄。如果文件上傳是在授權用戶下執行的,則他們需要向上傳文件夾授予RW權限。要使用BITS協議將文件上傳到HTTP服務器,請運行以下命令:Start-bits –source c:\iso\winsrv2016.iso -destination http://10.1.1.18/MEDVImages/winsrv2016.iso –Transfertype Upload請注意,默認情況下,IIS允許您上傳最大30 MB的文件。要允許上傳大文件,您需要更改web.config文件中maxAllowContentLength參數中的值。因此,使用BITS功能是使用SMB協議通過網絡復制普通文件的絕佳選擇。盡管連接中斷或計算機重新啟動,BITS文件傳輸任務仍然執行,并且在不干擾其他應用程序的情況下不會占用太多帶寬。BITS協議可能是通過WAN網絡傳輸大型ISO映像和虛擬機文件(vmdk,vhdx)的最佳解決方案。