Pre-download Software Distribution Tasks Sourcefiles

On request of our business department, I want to pre-distribute the sourcefiles of a software distribution task prior to sending the task itself.

Is it as simple as copy/paste the prefetch+move command from the original fixlet to a new fixlet and save the file to a permanent directory?

Then in the install fixlet, change the basefolder parameter to the permanent directory and execute the rest of the fixlet without the prefetch command.

Actually, it is even easier than that.

Set the BES Client Download Cache to be larger than the downloads. If you do a lot of software distribution with BigFix, then I’d recommend setting it to at least 5GB.

Then you can put the prefetch statement in a task/fixlet all by itself. You could actually put many prefetch statements from many tasks that you want to cache. As long as the total size is less than the BigFix Client Download Cache setting, then they will all be cached on the client.

You don’t need to move them to a permanent location and I would recommend against this approach.

Then when you deploy the actual task, it will skip the download portion and run quickly.

I think in most cases pre-caching downloads is not needed unless there are some major issues with WAN links or very short windows in which the items can be deployed.

In most cases I deploy software and updates while users are logged in and using the system without a problem.

I am curious, Why is pre-caching the downloads needed in this case?

Hi jgstew,

Thank you for the reply!

I work for a European railway company and our team manages the point-of-sale devices on trains and the windows tablets that are used by the train operators to view security procedures.
These devices have a variable connectivity; connected by wifi in the stations, on the train by 3G/4G or no connection at all.
We need to distribute a new line of business application to these devices. The distribution of sourcefiles to +5000 devices can take up to a month to reach 80% of our devices.

When using the BES download cache, the sourcefiles get deleted after a reboot. This is why I’m using a custom sourcefile directory.

1 Like

Thanks for the background info.

  • Couldn’t you have it just download and then run the installation?
  • Why does it need to be pre-downloaded?
  • Do they all need to be updated at the exact same time?

Also, the download cache SHOULD NOT be deleted after reboot. The files from the site’s __Download directory will get deleted, but they will still be in the download cache.

The download cache is located here on 64 bit windows systems:

C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\__Global\__Cache\Downloads

It should persist forever up to the limit of the download cache setting, with older and less used files being replaced as newer ones are downloaded.

It is confusing because file downloads can be in many different places while downloading and running something.

Like here:

C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\__Global\__Download\<site_folders>

Or here: (this is the location context that things actually run within)

C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\<site_folders>\__Download

But downloads don’t actually persist in those locations like they do in the location I provided above.

Hi @jgstew,

Thank you for that information.
To answer your questions:
We deploy a baseline as an offer that uninstalls all old versions of the LOB application and checks the prerequisites before execution the installation. It is possible that the network drops during the execution of the baseline because our user is on a train. If this happens after the uninstall but before the sourcefiles of the install component are downloaded, the user does not have the LOB application anymore.

For other LOB applications it could be possible that this has to happen at the exact same time.

To solve the issue you describe, you can check a box when deploying the baseline to download before constraints are satisfied and then set the baseline’s start date to be in the future. This will cause the downloads the baseline performs to be done ahead of time before prompting the user to do the install, as long as it is done far enough ahead of time.

1 Like

I considered this as this is a build-in option.

But not all components in a baseline need to be executed. We uninstall all previous versions of the software before performing an install and to limit bandwidth usage on the 4G connection, we only want to download the relevant version.

Does this download all sourcefiles within a baseline or only the relevant ones?

“Download before action constraints are satisfied” will only download files from relevant fixlets in the baselines.

Is this also so for baselines deployed as an offer?

I just ran a test and the content will download onto clients before the offer is accepted if “Download before action constraints are satisfied” is checked.

Ok, that is exactly what I need. Thank you for the information!

So only the content of relevant fixlets within the baseline will download before the offer is accepted.

1 Like

Exactly! And only if that “before action constraints are satisfied” is checked.

1 Like

If it does only download the files for the components that are relevant, then you may need to adjust the relevance on the installer task, or have another task in the baseline that only caches the file that is always relevant, while the task that actually installs the item would only be relevant AFTER the uninstall completes successfully.

This may be a non-issue for you, but if you have a lot of good relevance in your install task, then it shouldn’t be relevant until the previous version is uninstalled if that is what is required.