SCCM Alternate Content Provider SMSTSDownloadProgram

It is weekend and Saturday morning 3am. Good morning, and good night!

I am happily finished my Alternate Content Provider download tool (Beta). I call it ACL_PoSH_x64.exe and ACL_PoSH_x86 🙂

This tool use http download.

This blog shows you how to use SMSTSDownloadProgram variable, read about that before you test my tool.

Why I make this tool? What is the benefit of this tool?

When you assign many DPs in a boundary group, during Full OS deployment, I mean winpe OSD, before workstation install ConfigMgr client, workstation will randomly pick a DP as download source, it doesn’t not always pick the DP what is in the same subnet. With this tool, it will check if the DP is in the same subnet.

Feature of this tool:

  1.  It gets the DPs list where can download the package
  2.  It priority DP that is in the same subnet, and check it this DP is online, if it is, then download from it.
  3.  If there is no local subnet DP available, check if a fallback DP variable is assigned in your TS. If there is one, and if the fallback DP is online, then download from it.
  4.  If there is no local subnet DP or no fallback DP available, then it recheck the download sources list again, and pick the first DP as download source.
  5. It can download Operating System image, software packages, and driver packages.


  1. It cannot download Software Updates or Applications, but ConfigMgr Client will choose the correct subnet DP for you.
  2. if download failed, it will fall back to Content Transfer Manager and Data Transfer Service.
    If you have not configured your IIS to allow some file formats, download will stuck. example: .config, in this case, you should check the log file, and correctly configure your IIS.


Known issues:

  1. Not supported if content source folder contains special characters.


How to use:

  1.  Remove any network drive
    cmd.exe /c “net use * /del /yes”

  2. Connect to script network drive where you have the download tool.

  3.  Set the fallback server name in OSDFallbackSRV variable. This variable is hardcoded in the download tool.
    the fallback server name format should be FQDN.

  4. Set Distritubion Point Server’s name in OSDDPList variable. This variable is hardcoded in the download tool.
    Distritubion Point Server’s name format should be FQDN, use comma to seperate each names, without any space.

  5. Set SMSTSDownloadProgram variable value of the download tool path.
    In my case it is Z:\ACL_PoSH_64.exe
    If you put the download tool ACL_PoSH_x64.exe to boot.wim under windows\System32 folder, then you don’t need to map the network driver.
    Can just set the SMSTSDownloadProgram value as: ACL_Posh_64.exe (if you use 32bit, then use the ACL_Posh_x86.exe)

  6. Log file can be found in X:\Windows\Temp\SMSTSLog\ACL_PoSH_download.log during OSD


You can also use this tool for download packages manually in this format (without any double quoter):
Z:\ACL_PoSH_64.exe justsomething PackageID destination
Z:\ACL_PoSH_64.exe Driver ZIT00016 C:\Temp\Drivers\

Here are some screenshots:

In the scenario, client machine and DP is not in the same subnet, Fallback server is assigned.

You can download this tool from my OneDriver: Click here

PS. Altough I have tested it many times, it might be still bugs, Please kindly let me know if there is issues.


Leave a Reply

Your email address will not be published. Required fields are marked *