A helyi (és globális) hálózatokon a fájlok rendszerük közötti átvitele általában az SMB, FTP vagy HTTP protokollokkal történik. Mindezen protokollok problémája a nagy fájlok letöltésének nehézsége, amelyeket tovább súlyosbíthatnak az adatok lassú vagy instabil csatornán keresztüli továbbítása. Fájlok másolásakor ezekkel a protokollokkal általában a kiszolgáló és a címzett közötti kommunikációs csatorna összes elérhető sávszélességét használják, ami hátrányosan befolyásolhatja a hálózati teljesítményt és más alkalmazásokat (a hálózati berendezés szintjén nem mindig lehet a megfelelő QoS-házirendeket konfigurálni). Ebben a cikkben megvizsgáljuk a protokoll használatának lehetőségét. BITS és parancsmagok PowerShell nagy fájlok másolása a hálózaton keresztül instabil vagy lassú csatornán keresztül.
Tartalom:
- BITS Protokoll
- BITS: OS és PowerShell verziókövetelmények
- Fájl letöltése a BITS protokoll használatával a PowerShell használatával
- Fájlok szinkron átvitele a számítógépek között a BITS segítségével
- A BITS használata a nagy fájlok aszinkron másolására egy hálózaton keresztül
- A hálózati megosztás teljes tartalmának másolása a BITS segítségével
- Fájl feltöltése egy HTTP szerverre a PowerShell és a BITS használatával
BITS Protokoll
BITS vagy háttér intelligens átutalás szolgáltatás - (Háttér intelligens átviteli szolgáltatás) egy Windows szolgáltatás, amelyet fájlok átvitele a rendszerek között. A BITS protokoll segítségével fájlokat tölthet le és töltsön fel. E protokoll szerint a számítógépek letöltik a fájlokat a kiszolgálókról, amikor automatikusan frissítik a Windowsot (ideértve a frissítések letöltését egy WSUS szerverről), amikor programokat fogadnak az SCCM terjesztési pontoktól stb..
A BITS Jegyzőkönyv előnyei:
- A BITS egy intelligens protokoll, amely működés közben képes szabályozni a kommunikációs csatorna használt sávszélességét, hogy ne befolyásolja a többi hálózati alkalmazást és szolgáltatást. A BITS csak nem kiosztott csatorna sávszélességet használhat, és működés közben dinamikusan megváltoztathatja az adatátviteli sebességet (ha más alkalmazások növelik a hálózat terhelését, a BITS csökkentheti az adatátviteli sebességet a hálózaton keresztül);
- A fájlok letöltése a felhasználó számára láthatatlanul a háttérben történhet;
- A BITS folytatása üzemmódban a BITS feladat automatikusan folytatódik, még akkor is, ha a számítógép és az ügyfél közötti kommunikációs csatorna megszakad, vagy a számítógép újraindul;
- Bármikor szüneteltetheti vagy folytathatja a letöltést a BITS-en keresztül adatvesztés nélkül;jegyzet. A fájlmásolási eljárás hálózaton keresztüli újraindításának lehetősége a robocopy.exe segédprogramban is elérhető, amely lehetővé teszi a fájl letöltésének folytatását csatlakozási hiba esetén.
- A BITS lehetővé teszi a rendszerindítási feladat prioritásainak kezelését;
- A fájlok átvitele a számítógépek között a 80-as (HTTP) vagy a 443-as (HTTPS) porton történik, így nem kell további portokat megnyitnia a tűzfalakon. Például: 445 port, amelyet az SMB protokoll használatakor másolnak (ne felejtsük el, hogy sok biztonsági rés van az SMB 1.0 protokoll régebbi verzióiban);
- A címzett és a szerver oldalán nincs szükség telepített IIS szerverre.
Így a BITS az optimális protokoll nagy fájlok továbbítására lassú és instabil hálózatokon (műholdas csatorna, GPRS kapcsolat stb.).
BITS: OS és PowerShell verziókövetelmények
A BITS protokollt először a Windows XP-ben vezették be annak a BITS-feladatnak a kezelésére, amelyben lehetséges volt a segédprogram bitsadmin.exe. A segédprogram továbbra is támogatott, de elavult. A BITS feladatok kezelése érdekében célszerű speciális PowerShell-parancsmagokat használni.
A forgatókönyv működéséhez szükség van egy operációs rendszerre, amely nem alacsonyabb, mint a Windows Vista vagy a Windows Server 2008, és a PowerShell, nem alacsonyabb, mint a 2.0. A Windows 10 és a Windows Server 2016/2012 R2 modern verziói teljes mértékben támogatják a BITS protokollt.
tanács. Lehetséges a Windows Server 2003 használata. Ebben az esetben a KB 923845 és a PowerShell V2.0 speciális frissítéseket kell telepítenie..A BITS támogatására mind az ügyfél, mind a szerver oldalán szükség van.
Fájl letöltése a BITS protokoll használatával a PowerShell használatával
Tegyük fel, hogy nagy IIS HTTP-kiszolgálón tárolt ISO fájlt szeretne letölteni (_http: //10.2.2.148/erd65_32.iso).
Feltételezzük, hogy névtelen hozzáférés engedélyezett ehhez az URL-hez (a jövőben megfontoljuk az URL-hez való hozzáférést hitelesítéssel).
Először töltse be a BITS támogatási modult a PowerShell munkamenetbe:
Import-Modul BitsTransfer
A modul betöltése után felsorolhatja a BitsTransfer modul összes elérhető parancsát:
get-command * -BITS *
Mint láthatja, csak 8 cmdlet érhető el:
- Add-BitsFile
- Komplett-BitsTransfer
- Get-BitsTransfer
- Remove-BitsTransfer
- Folytatás-BitsTransfer
- Set-BitsTransfer
- Üzembe BitsTransfer
- Felfüggesztés BitsTransfer
Fájlok szinkron átvitele a számítógépek között a BITS segítségével
A Start-BitsTransfer parancsmag lehetővé teszi a fájlok letöltését HTTP (k) (valamint az Invoke-WebRequest parancsmag) és megosztott hálózati mappákból (SMB-n keresztül). Egy fájl letöltésére egy megadott URL-címről a BITS protokoll használatával, és a helyi C: \ Temp könyvtárba mentéséhez használja a következő parancsot:
Start-BitsTransfer -forrás _http: //10.2.2.148/erd65_32.iso -célpont c: \ temp
üzenet Ez egy fájlátvitel, amely a Background Intelligent Transfer szolgáltatást (BITS) használja. szerint a megadott fájl letöltése a BITS protokolllal megkezdődött.
Ebben a példában a parancsmag szinkronban tölti le a fájlt. A fájl letöltése hasonlít a szokásos másolási eljáráshoz az Intézőn keresztül vagy a PoSh parancsmag másolási elemének használatával. Ebben az esetben a folyamatjelző sáv jelenik meg a képernyőn, feltüntetve a letöltés állapotát. A számítógép újraindításakor a letöltés nem folytatódik (a teljes fájlt újra kell töltenie).
A BITS használata a nagy fájlok aszinkron másolására egy hálózaton keresztül
A fájlok BITS-n keresztüli letöltésének folyamata aszinkron módban is elindítható, ehhez hozzá kell adnia a paramétert a fenti parancshoz. -aszinkron. Ebben a módban, ha történik valami a fájl letöltése közben (a szerver, az ügyfél újraindítása, a kommunikációs csatorna leválasztása stb.), Akkor a feladat automatikusan folytatódik a forrás rendelkezésre állásának helyreállítása után, és a fájl letöltése a kapcsolat megszakításának pillanatától folytatódik..
Start-BitsTransfer -forrás _http: //10.2.2.148/erd65_32.iso -célpont c: \ temp -asynchronous
Start-BitsTransfer -forrás _http: //10.2.2.148/erd65_32.iso -célpont c: \ temp -szinkron -Prioritás alacsony
Egy aszinkron BITS-feladat fut a háttérben, és a fájlfeltöltési parancs végrehajtásának folyamata nem jelenik meg. A BITS feladat állapotát a PowerShell konzolból szerezheti be a Get-BitsTransfer paranccsal:
Get-BitsTransfer | fl
A parancs visszaadja az átvitel állapotát (ebben az esetben egyértelmű, hogy az átadás befejeződött - átadva), az átvitt byte-ok számával, a fájl teljes méretével, a BITS létrehozási és befejezési idejével kapcsolatos információk.
A számítógépen futó összes BITS job állapotát táblázatos formában tekintheti meg:
Get-BitsTransfer | válassza a DisplayName, BytesTotal, BytesTransferred, JobState | lehetőséget Táblázat formátum - Automatikus méret
Aszinkron átviteli mód használatakor egy ideiglenes fájlt hoz létre a TMP kiterjesztéssel a célkönyvtárba (alapértelmezés szerint el van rejtve az Explorerben). Az eredeti fájltípusba konvertálásához (amelyet a forráskiszolgálón tárolnak) futtatnia kell a Complete-BitsTransfer parancsot:
Get-BitsTransfer | Komplett-BitsTransfer
A BITS letöltési feladata ezt követően teljesítettnek tekinthető, és eltűnik a feladatlistáról..
Feltölthet egy helyi fájlt egy távoli kiszolgáló megosztott hálózati mappájába. Ehhez használja a következő parancsot (a kényelem érdekében megadhatja a másolási munka nevét):
Start-BitsTransfer -C forrás: \ iso \ w101809.iso -Destination \\ ekt-fs1 \ iso -Asynchronous -DisplayName CopyISOtoEKT
A BITS-feladat ideiglenes felfüggesztése:
Get-BitsTransfer -Name CopyISOtoEKT | Felfüggesztés BitsTransfer
A munka folytatásához használja a Resume-BitsTransfer parancsmagot:
Get-BitsTransfer -Name CopyISOtoEKT | Folytatás-BitsTransfer - Szinkron
További fájlokat adhat hozzá a BITS feladathoz az Add-BitsFile parancsmag segítségével:
Get-BitsTransfer -Name CopyISOtoEKT | Add-BitsFile -C forrás: \ iso \ w10msu \ * -Desination \\ ekt-fs1 \ iso -Asynchronous
Az összes BITS letöltési job törléséhez a számítógépen (beleértve a többi felhasználó által elindított munkákat is) futtassa a következő parancsot:
Get-BitsTransfer -Allusers | Remove-BitsTransfer
Ha a szerver, amelyen a fájlt tárolja, felhasználói hitelesítést igényel, akkor felhívhat egy ablakot, amelyben hitelesítő adatokra van szükség az erőforrás eléréséhez:
Start-BitsTransfer -forrás _http: //10.2.2.148/erd65_32.iso -célpont c: \ temp -asynchronous -Priority alacsony --Hitelesítés NTLM -Credential Get-Credential
A BITS feladat eredményeinek nyomon követésének megkönnyítése érdekében használhat egy egyszerű szkriptet, amely figyeli a feladatot, és néhány másodpercenként megjeleníti a képernyőn a betöltés százalékos arányát. A fájl letöltése után a szkript automatikusan konvertálja a TMP fájlt az eredeti formátumba:
Import-Modul BitsTransfer
$ job = Start-BitsTransfer -forrás _http: //10.2.2.148/erd65_32.iso -Nem célpontja: \ temp -Asynchronous
míg (($ job.JobState.ToString () -eq 'Transfering') -vagy ($ job.JobState.ToString () -eq 'Connecting'))
Írás-host $ Job.JobState.ToString ()
$ Pro = ($ job.BytesTransferred / $ job.BytesTotal) * 100
Write-Host $ Pro “%”
3. alvás
Complete-BitsTransfer -BitsJob $ job
A hálózati megosztás teljes tartalmának másolása a BITS segítségével
Mint már említettük, a BITS működéséhez nincs szükség webszerverre, ez azt jelenti, hogy fájlokat másolhat közvetlenül más Windows számítógépekről vagy megosztott hálózati mappákból:
Start-BitsTransfer -forrás \\ msk-rep01 \ os \ rhel-szerver-7.0-x86_64-dvd.iso - Cél cél: \ temp -Aszinkron
A BitsTransfer modul parancsmagjai nem tudnak rekurzív módon másolni az összes fájlt és mappát egy adott könyvtárból, vagy más programok által használt fájlokat. Az alkönyvtárakkal rendelkező összes fájl másolásához a megadott hálózati mappából használja ezt a funkciót (először ellenőrizheti, hogy létezik-e a célkönyvtár, és létrehozhatja azt):
Import-Modul BitsTransfer
$ Source = "\\ msk-rep01 \ os \"
$ Destination = "c: \ tmp \"
if (-Nem (Test-Path $ Destination))
$ null = Új elem -Path $ Destination -ItemType könyvtár
$ mappák = Get-ChildItem -Név -Path $ forrás -Directory -Fizetés
$ job = Start-BitsTransfer -Source $ Source \ *. * -Destination $ Cél -asynchronous -Priority alacsony
míg (($ job.JobState.ToString () -eq 'Transfering') -vagy ($ job.JobState.ToString () -eq 'Connecting'))
3. alvás
Complete-BitsTransfer -BitsJob $ job
foreach ($ i $ mappákban)
$ létezik = Test-Path $ Cél \ $ i
if ($ létezik -eq $ false) Új elem $ rendeltetési hely \ $ i -ItemType könyvtár
$ job = Start-BitsTransfer -Source $ Source \ $ i \ *. * -Destination $ Cél \ $ i -asynchronous -Priority alacsony
míg (($ job.JobState.ToString () -eq 'Transfering') -vagy ($ job.JobState.ToString () -eq 'Connecting'))
3. alvás
Complete-BitsTransfer -BitsJob $ job
Fájl feltöltése egy HTTP szerverre a PowerShell és a BITS használatával
A BITS használatával nem csak letölthet egy fájlt egy HTTP szerverről, hanem feltöltheti azt egy távoli webszerverre is. Ehhez az IIS webszervert és a telepített összetevőt telepíteni kell a címzett oldalára bit szerver kiterjesztés. Az IIS virtuális könyvtári beállításai szakaszban bit feltöltések engedélyeznie kell az opciót "Hagyjuk ügyfelek hogy feltöltések fájlok".
Ha névtelen jogosultságot használ, akkor engedélyeznie kell a névtelen felhasználók számára, hogy az NTFS szintű könyvtárba írjanak. Ha a fájl letöltése engedélyezett felhasználók által történik, akkor a letöltési mappában RW engedélyeket kell kapniuk.
A fájl feltöltéséhez a BITS-protokoll használatával a HTTP-kiszolgálóra futtassa a következő parancsot:
Start-bit -forrás c: \ iso \ win2016.iso-rendeltetés http://10.10.1.200/MEDVImages/win2016.iso -Transfertype Upload
Így a BITS szolgáltatások használata kiváló alternatívája a hagyományos fájlmásolásnak az egész hálózaton keresztül az SMB protokoll használatával. Az utóbbival ellentétben a BITS fájlok másolásának feladata a számítógépek leválasztása és újraindítása ellenére történik, és nem tölti be a kommunikációs csatornát anélkül, hogy beavatkozna más hálózati alkalmazások és felhasználók munkájába. A BITS protokoll lehet az optimális megoldás nagy ISO képfájlok és virtuális gép fájlok (vmdk, vhdx) WAN hálózaton történő átviteléhez..