Project Description

BDPAdd is a tool that will bulk add protected branch distribution points to a ConfigMgr 2007 (SCCM) hierarchy. There is currently not a way, in the ConfigMgr console, to add multiple protected Branch distribution points at once. This tools attempts to address that problem. (Note: The tool could be easily modified, if needed, to add unprotected branch DPs. I needed protected Branch DPs though, so that's what I wrote this for.

This tool was written in C# and requires the .NET framework 2.0

Running the tool

BDPAdd.exe /s {central site server} /file {excel file} /log {path}

/s Central Site Server name.
/file Path to Excel files.
/log Log file path.
  • The input for this tool is an Excel 2003 spreadsheet and there are some requirements for the format of this spreadsheet. Review the example spreadsheet, bdpexample.xls, attached. Any deviation from this will either produce errors or unexpected resutls.
  • All output from this tool is written to the log file only. (The Trace utility from the ConfigMgr toolkit can be used to view the log)


I created this as a quick and dirty solution, its not polished or fine tuned, but since you can get the source code feel free to make changes as you wish.
Currently, the partition and minimum space settings are hardcoded. Partition value is not set so default will be used. Minimum free space value is 500 MB.

There is limited validation of the input data.

The following is validated by this tool:
  • The server specified must be a client (Client=1), have the ConfigMgr client installed, and must be assigned to the site code specified. If this is not met, this server is skipped and execution continues.
  • The boundary specified must be a valid boundary in the site of the site code specified. If this is not met, this server where this boundary is specified is skipped and execution continues.
  • The boundary type must be valid and determinable. The tool will attempt to determine the boundary type using regular expressions. If it cannot then the server is skipped where this boundary is specified and execution continues. (IP Ranges, IP Subnets, AD Site Names, and IPv6 Prefixes are supported)

The following is not validated by this tool:
  • The server specified is online.
  • The server is a healthy client.
  • The server has sufficient free space.
  • The server is Windows XP or above (This might be added in a future release)
  • The server is already a branch DP or another site system.
  • Anything else not specified above in the list of items validated.


Testing has not been performed with IPv6 prefix boundaries.
Testing has not been performed against ConfigMgr 2007 SP1.
Testing has not been performed with a "/s" command line parameter other than the central site server. (it should work if you specify a regular primary site server but processing will fail for any sites specified in the spreadsheet that the primary site does not know about.)

There are 2 delta site control files created per branch dp system. As I understand it, every time a call to the Put() method is made, a detla site control file is produced and requires processing. This tool creates 2 per system, 1 for the site system and 1 for the branch dp role. I'm not sure what impact this will have on the site servers if they having to process many delta site control files. (i.e. 200 servers to be added = 400 delta site control files). This is what I have observed, if I am wrong please correct me. Testing has been performed in a dev environment with only several at a time.

Please test and provide feedback.

Last edited Jun 6, 2008 at 9:53 PM by ddelgado1, version 16