You are on page 1of 3


Provides background information about the Background Intelligent Transfer
Service (BITS).
This topic provides information about BITS, BITS transfer types, BITS
transfer persistence, BITS transfer priority, the Windows PowerShell and
BITS cmdlets, and BITS server configuration. This topic also provides
links to more information about BITS.

About BITS
BITS is a file transfer service that provides a scriptable interface
through Windows PowerShell. BITS transfers files asynchronously in the
foreground or in the background. And, it automatically resumes file
transfers after network disconnections and after a computer is restarted.
Background transfers use only idle network bandwidth in an effort to
preserve the user s interactive experience with other network
applications such as Internet Explorer. BITS does this by examining the
network traffic and then using only the idle portion of the network
bandwidth. BITS continuously throttles its use of the bandwidth as the
user increases or decreases their use of the bandwidth. BITS performs
the transfers asynchronously, which means that your program or script
does not have to be running for BITS to perform the transfer. Both
uploads and downloads are supported. BITS is particularly suitable for
copying files from an HTTP location in an Internet Information Services
virtual directory to the logical drive of a client. Standard server
message block (SMB) copy operations are also supported. In addition to
the scripting interface provided by Windows PowerShell, BITS provides a
set of COM APIs to allow programming access.

BITS Transfer Types
There are three types of BITS transfer jobs:
- A download job downloads files to the client computer.
- An upload job uploads a file to the server.
- An upload-reply job uploads a file to the server and receives a
reply file from the server application.

BITS Transfer Persistence
BITS continues to transfer files after an application exits if the user
who initiated the transfer remains logged on and if a network connection
is maintained. BITS suspends the transfer if a connection is lost or if
the user logs off. BITS also persists the transfer information when a
user logs off, when network disconnections occur, and when a computer is
restarted. When the user logs on again, when the network is reconnected,
and when the computer is restarted, BITS resumes the user's transfer

Get-BitsTransfer Gets a single or multiple BITS transfer. If a network application begins to consume more bandwidth. optionally with the Suspend parameter.txt . BITS supports multiple foreground jobs and one background transfer job at the same time. -------------------------------- Add-BitsFile Adds one or more files to a BITS transfer. Jobs at the same priority level share transfer time. Background transfers are optimal because BITS uses idle network bandwidth to transfer the files. Suspend-BitsTransfer Suspends a BITS transfer job. Create a BITS transfer job by using the Start-BitsTranfer cmdlet. which prevents a large job from blocking small jobs in the transfer queue. Add files to the BITS transfer job by using the Add-BitsFile cmdlet. Higher priority jobs preempt lower priority jobs. 2. BITS decreases its transfer rate to preserve the user's interactive experience. Start-BitsTransfer Creates and starts a BITS transfer job.txt c: \clienttestdir\testfile1. You can use these cmdlets to complete the end-to-end tasks that are necessary to manage the transfer of files between computers. Remove-BitsTransfer Deletes a BITS transfer. To copy a file using BITS: 1. Check the status of the BITS transfer job by using the Get-BitsTransfer cmdlet. Cmdlet Descriptions --------. BITS increases or decreases the rate at which files are transferred based on the amount of idle network bandwidth that is available. 3. Start the BITS transfer by using the Resume-BitsTransfer cmdlet. Set-BitsTransfer Configures BITS transfer jobs. the following BITS cmdlets are available. Windows PowerShell and the BITS Cmdlets Windows PowerShell implements BITS functionality through the BITS module for Windows PowerShell. Complete-BitsTransfer Completes a BITS transfer. Resume-BitsTransfer Resumes a suspended BITS transfer. Lower priority jobs do not receive transfer time until all the higher priority jobs are complete or in an error state. The BITS module loads a set of BITS-specific cmdlets. Sample Commands A simple Windows PowerShell BITS file transfer command might resemble the following command: C:\PS> Start-BitsTransfer http://server01/servertestdir/testfile1. BITS Transfer Priority BITS provides one foreground and three background priority levels that you can use to prioritize transfer jobs. When the BITS module for Windows PowerShell is loaded. 4.

microsoft."About BITS" http://go.0 and Windows Server 2008. More Information about BITS For more information about BITS. create an IIS virtual directory on the server where clients can upload BITS adds properties to the IIS metabase for the virtual directory that you create. For more information. Create a virtual directory for each type of client. the server must be running IIS see the following topics in the MSDN (Microsoft Developer Network) library: . To upload files to a server by using . The BITS server extension is a subcomponent of IIS. A slightly more complex Windows PowerShell BITS file transfer set of commands might resemble the following command: C:\PS> Import-CSV filelist.txt | Start-BitsTransfer -TransferType Upload BITS Server Configuration Background Intelligent Transfer Services (BITS) server extends Internet Information Services (IIS) to support throttled uploads that can be restarted. see "Setting Up the Server for Uploads" in the MSDN library at http://go. To use the upload Add-BitsFile Complete-BitsTransfer Get-BitsTransfer Remove-BitsTransfer Resume-BitsTransfer Set-BitsTransfer Start-BitsTransfer Suspend-BitsTransfer ."Background Intelligent Transfer Service" SEE ALSO Online version: http://go. and it uses these properties to determine how to upload the files. the BITS server extension for the Internet Server Application Programming Interface (ISAPI) must be installed.