Windows Tip Sheet

Downloading Frenzy

BITS lets you take back your CPU when downloading large software and program files.

Turns out you can have too much of a good thing. I'm on beta programs for about a half-dozen software programs and it seems like this week has seen a new build for every one of them. Of course, that means downloading a half-dozen huge, new ISO images on top of all the Microsoft updates I need to download and the regular work I need to do. Simply downloading everything using my browser's download manager takes up too much bandwidth, so it's Background Intelligent Transfer Service (BITS) to the rescue!

Slow BITS, Easy BITS
BITS comes with WinXP and Win2003, although Microsoft has positioned it as a tool more for developers to use within their applications than for us admins. Fortunately, Windows 2003 ships with a command-line tool named BITSAdmin (find it in Support Tools on the install CD if it isn't installed), and you can copy it to WinXP with no problems.

Start by creating a job: bitsadmin /create /download jobname. Keep the job name simple; you're the only one who will be using it. Next, add files to the job: bitsadmin /addfile jobname remote-url local-pathname. Give it the complete remote URL to download and the final local path and filename you'd like the file to have. Add as many files as you like—BITS will get them one at a time.

Kick it off with bitsadmin /resume jobname, and keep an eye on things with bitsadmin /list /allusers. When BITS lists a job as finished, run bitsadmin /complete jobname to wrap things up and move the files to their final locations.

BITS is cool in that it only uses "spare" bandwidth. If you start doing something else on your PC, BITS will back off and give up bandwidth until you're done. That means you can keep working while it downloads in the background. BITS also supports auto-resume of interrupted downloads and can even resume after you log off and log back on. It can even access protected URLs: Run bitsadmin /setcredentials jobname server auth-scheme username password. Auth-scheme will usually be "basic" for Internet downloads.

You can even—and this is really useful—have BITS run a command line for you when a job is done: bitsadmin /setnotifycmdline jobname command-line. This allows you to have a batch file run when a job is finished that automatically runs the /complete command to wrap up the job.

By plugging all my downloads into BITS, I was able to keep working. When the downloads had finally trickled in, I was ready to start installing. If only BITS could speed that up, too. Microsoft thinks BITS is cool, too. Windows Update, Software Update Services, and Windows Update Services all use BITS in various capacities.

Micro Tip Sheet

WinXP's version of BITS only supports downloads. Win2003's version (1.5) supports uploads, too, to any server (e.g., IIS 6.0) running the BITS extensions. XP SP2 will include version 2.0 of BITS, which supports uploads. Note that the BITSAdmin tool works with WinXP, but you'll get an error if you try to create an upload job and haven't installed SP2 yet, because the underlying version of BITS 1.0 on WinXP doesn't do uploads. Microsoft Windows Update 5 also installs the BITS 2.0 client; see http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/
sp2wuins.mspx
for details.

As an alternative, you can always install a download manager: Download.com lists more than a hundred of them, both commercial and free. Most support auto-resume (which is actually a feature of certain HTTP 1.1 commands, which almost any modern Web server can handle), but few support background transfers using "spare" bandwidth the way BITS does. Many, in fact, use multiple connections and segmented downloads to help speed up downloads, although they consume more foreground bandwidth to do so.

More Resources
MSDN reference to BITSAdmin: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bits/bits/bitsadmin_tool.asp

Windows Support Tools documentation for BITSAdmin: http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/
techref/en-us/Default.asp?url=/resources/documentation/windowsServ/
2003/all/techref/en-us/bitsadmin.asp

Under-the-hood details of how BITS works: http://www.microsoft.com/windowsserver2003/techinfo/overview/bits.mspx

About the Author

Don Jones is a multiple-year recipient of Microsoft’s MVP Award, and is Curriculum Director for IT Pro Content for video training company Pluralsight. Don is also a co-founder and President of PowerShell.org, a community dedicated to Microsoft’s Windows PowerShell technology. Don has more than two decades of experience in the IT industry, and specializes in the Microsoft business technology platform. He’s the author of more than 50 technology books, an accomplished IT journalist, and a sought-after speaker and instructor at conferences worldwide. Reach Don on Twitter at @concentratedDon, or on Facebook at Facebook.com/ConcentratedDon.

Featured

  • Microsoft Starting To Roll Out New Excel Connected Data Types

    Microsoft on Thursday announced some Excel and Power BI enhancements that add "connected data types" on top of the standard strings and numbers options.

  • Windows 10 Users Getting New Process for Finding Optional Driver Updates

    Accessing Windows 10 drivers classified as "optional updates" will be more of a manual seek-and-install type of experience, starting on Nov. 5, 2020, Microsoft explained in a Wednesday announcement.

  • Microsoft Changes Privacy Platform Name to SmartNoise

    Microsoft Research has changed the name of its "differential privacy" platform from "WhiteNoise" to "SmartNoise," according to a Wednesday announcement.

  • Why Restarting a Failed SCVMM Job Might Be a Bad Idea

    Occasionally, restarting a failed System Center Virtual Machine Manager job can leave your virtualization infrastructure in an unknown state. Here's how to avoid that.

comments powered by Disqus