When dealing with legacy Windows 2000 systems in remote locations, bandwidth management becomes crucial during large file transfers. The primary constraints are:
- Preserving terminal service responsiveness
- Ensuring transfer resumability
- Handling mixed file sizes (from KBs to 20GB+)
While rsync is ideal for Unix systems, Windows alternatives exist with proper bandwidth control:
1. Robocopy with QoS Policies
Built into modern Windows (and available for W2K), Robocopy offers excellent resume capabilities:
robocopy \\source\share \\dest\share /MIR /Z /R:1 /W:1 /TEE /NP /V /XD temp /LOG:transfer.log
To throttle bandwidth, combine with Windows QoS:
# PowerShell QoS policy (Win7+)
New-NetQosPolicy -Name "BackupThrottle" -AppPathNameMatchCondition "robocopy.exe" -ThrottleRateActionBitsPerSecond 1MB
2. BITSAdmin for Legacy Systems
Windows 2000's Background Intelligent Transfer Service provides native throttling:
bitsadmin /create backup_transfer
bitsadmin /addfile backup_transfer http://server/share/file.zip C:\dest\file.zip
bitsadmin /setproxysettings backup_transfer OVERRIDE "proxy:port"
bitsadmin /setcustomheaders backup_transfer "Pragma: no-cache"
bitsadmin /setpriority backup_transfer FOREGROUND
bitsadmin /setminretrydelay backup_transfer 60
bitsadmin /setmaxdownloadtime backup_transfer 604800
bitsadmin /setnotifycmdline backup_transfer c:\tools\callback.exe
bitsadmin /resume backup_transfer
Tool | Resume | Throttle | W2K Support |
---|---|---|---|
RichCopy | Yes | Manual | Yes |
TeraCopy | Yes | Yes | No |
FastCopy | Partial | No | Yes |
For mixed file environments, consider this batch approach:
- Create file manifest with sizes
- Prioritize small files first
- Implement nightly bandwidth windows (2AM-6AM)
- Use checksum verification post-transfer
@echo off
:: W2K-compatible batch script
for %%f in (*.zip) do (
bitsadmin /create "TR_%%~nf"
bitsadmin /addfile "TR_%%~nf" "file:///c:/source/%%f" "c:/backup/%%f"
bitsadmin /setpriority "TR_%%~nf" LOW
bitsadmin /setminretrydelay "TR_%%~nf" 300
bitsadmin /resume "TR_%%~nf"
)
Essential commands for transfer oversight:
:: List active transfers
bitsadmin /list /allusers /verbose
:: Check specific transfer
bitsadmin /info TR_backup /verbose
:: Verify file integrity
fciv.exe -sha1 -both c:\source\file.zip c:\backup\file.zip
When decommissioning a Windows 2000 server with compressed backups totaling ~40GB, we face two technical constraints:
- Bandwidth limitation required to maintain Terminal Services availability
- Resumable transfer capability for interrupted operations
While rsync works well in *nix environments, Windows implementations often lack robust partial file transfer capabilities. SMB mounts alone don't provide bandwidth throttling.
The Windows Resource Kit's robocopy
combined with QoS policies provides the most reliable approach:
# Basic throttled copy command
robocopy \\source\backups Z:\destination /MIR /Z /R:1 /W:1 /TEE /V /NP /MT:4
# Bandwidth throttling via Group Policy (QoS)
1. Launch gpedit.msc
2. Navigate to: Computer Config → Windows Settings → QoS Policy
3. Create new policy limiting "SMB" traffic to 512Kbps (50% of T1)
4. Apply to server IP
For more granular control, use Background Intelligent Transfer Service:
# Create a BITS transfer job
bitsadmin /create backup_xfer
bitsadmin /addfile backup_xfer \\server\backup1.zip C:\backups\backup1.zip
bitsadmin /setpriority backup_xfer foreground
bitsadmin /setnotifycmdline backup_xfer C:\scripts\complete.cmd
bitsadmin /setminretrydelay backup_xfer 60
# Limit bandwidth to 25% of T1 (384Kbps)
bitsadmin /setcustomheaders backup_xfer "X-Limit-Target: 384000"
bitsadmin /resume backup_xfer
Use Performance Monitor to track actual bandwidth usage:
- Add counters for "Network Interface → Bytes Total/sec"
- Set alert when exceeding 1.2Mbps (80% of T1)
- Log data to CSV for post-transfer analysis