We’re in a such a strange period of time globally at the moment. On the one hand, the entire world is going through the same thing bringing us together but on the other we’re all “social distancing” or being isolated from each other.

Personally, I’ve been working from home all week.  While this isn’t something new – I usually try to block out one or two days a fortnight – I’ve had a lot more time on my hands without the travel and disuptions. After being prodded by APJ Field CTO here at VMware, suggesting I put some thing social media about VMware and our Tech For Good program, I thought what could I actually do could help others join forces for the greater good as well.

VMware itself has advised all of our global employees to work from home too so there’s a lot more chatter on Slack, and one of the things we’ve been talking about is everyone installing Folding At Home on our homelabs to contribute our spare compute capacity to finding a way to fight COVID-19.

This got me thinking – now that everyone is working from home, think of all the compute that is just sitting on the desks of all offices around the world. Sure we can put it into our datacentres (stay tuned for more on this), but I think I could come up with a way to get this onto all PCs managed by Workspace ONE at scale and fold the night away!

I know what you’re thinking – this is a lot of additional power to be using and a lot of additional carbon emissions to be creating. Admittedly I had the same conerns as well initially, but when I was reminded the amount of flying and even car travel I would usually have done this month, it wasn’t even a comparison.

Anyway, essentially what I come up with is nothing that special. I just know that there are probably a lot of machines there doing nothing and we can use their CPUs (and GPUs if they have them) for good purposes. Folding at Home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. They have created a set of applications that anyone can install and simulate these proteins (protein folding) using their own PCs. The processing power we can all provide to this, the information scientists have to understand and develop better therapies and techniques.

So with that I created a few scripts that allows Organisations to deploy this to all their machines and have it scheduled to run overnight outside of business hours – whether its because electricity is generally cheaper then or because the PCs are less likely to be used. The great part about what VMware has with Workspace ONE is that Organisations can easily make it available to all users to participate on their BYO machines. Better yet, because we can deploy it over the air on any network those users who have taken their devices home and want to participate can easily install it from the Workspace ONE Intelligent Hub Unified Catalog.

The files you need are below. I’ll go through each of them and what I added so that you know how to edit for your own purposes.

fah.bat


Description: This is the file that starts the Folding@Home client. The –config switch tells it which config file to use.

Code:

“C:Program Files (x86)FAHClientFAHClient.exe” –config C:VMwareFoldingAtHomefah-config.xml 

fah-config.xml


Description: Here is where you put all the settings the client reads when it starts.

Mine is only basic, but you will see that under User information you can specify a team (this is the VMware team number) and a username so it attributes it to you. The easiest way to create your own config is to install it once and edit the settings, and then copy the .xml file. More information here.

Code:

<config>
  <!– Folding Core –>
  <core-priority v=’low’/>


  <!– HTTP Server –>
  <allow v=’0.0.0.0/0’/>
  <deny v=”/>


  <!– Network –>
  <proxy v=’:8080’/>


  <!– Remote Command Server –>
  <command-allow-no-pass v=’0.0.0.0/0’/>
  <command-deny-no-pass v=”/>
  <password v=’secretpassword’/>


  <!– Slot Control –>
  <power v=’full’/>


  <!– User Information –>
  <passkey v=”/>
  <team v=’52737’/>
  <user v=’TBWFDU’/>


  <!– Web Server –>
  <web-allow v=’0.0.0.0’/>


  <!– Folding Slots –>
  <slot id=’0′ type=’CPU’/>
  <slot id=’1′ type=’CPU’/>
</config>




fah-install.bat


Description: This is batch file used to install FAH from Workspace ONE.  It intalls FAH (silently), creates a directory to store the config, and adds a scheduled task to run every day between 5:30PM and 8:00AM.

Code:

fah-installer_7.5.1_x86.exe /S
mkdir C:VMwareFoldingAtHome
copy fah-config.xml C:VMwareFoldingAtHome
copy fah.bat C:VMwareFoldingAtHome
copy fah-uninstall.bat C:VMwareFoldingAtHome
schtasks /create /tn “Folding After Hours” /tr C:VMwareFoldingAtHomefah.bat /sd 20/03/2020 /ed 20/03/2022 /sc daily /st 17:30 /et 08:00 /k /ru System /F
exit

fah-install_xxxx_x86.exe


Description: This is the installer for FAH. I won’t include that in my .zip file at the end so make sure you download your own copy and add it to the zip file before adding it to Workspace ONE UEM!

fah-uninstall.bat


Description: Used to uninstall FAH and cleanup (mostly) afterwards. Uninstalls FAH and deletes the scheduled task.

Code:

“C:Program Files (x86)FAHClientUninstall.exe” /S
schtasks /delete /tn “Folding After Hours” /F


And finally, FoldingAtHome.zip this includes all the files in the screenshot above and is what we upload to Workspace ONE. 


For more information on installing Apps using a .zip file, see this article I wrote on it.


Now, lets set it up in the Console.


In Workspace ONE UEM, go to APPS & BOOKS -> Applications -> Native -> ADD APPLICATION


In this Window, upload the FoldingAtHome.zip file (make sure you create a new one with the right config, settings and include the installer!)

When that uploads, say No its not a dependency app, and Continue.
Here, give it a name on the Details tab.
On the Files tab, we need to scroll down to the App Uninstall Process. Note that this the script that I described above (make sure you don’t upload and just enter the script like above where it gets copied to).

On Deployment Options, you can use Device or User Install Context and the How To Install command is


fah-install.bat > C:VMwarefah.log 

This is the file from the .zip that does all the stuff, and the greater than symbol and path just pipes the output of the bat file for any troubleshooting in the installation.

Still on the Deployment Options tab, you have to configure When To Call Install Complete use the ‘Defining Criteria’ option and Add.

I find it easiest to use the ‘File Exists’ option and looked for a file that I knew would be installed using my bat file: C:VMwareFoldingAtHomefah.bat Press Add.

Now we want to have a nice icon. On the Images tab, upload an image the Icon area.

And lastly (this is optional), add a Terms of Use. I’m creating a new one here (Please read!)

The final thing we need to do is assign it to some devices, by clicking Save and Assign.

When we ADD ASSIGNMENT pick your Smart Group for who you want this to be made available to.

In my example here, I’m assigning it to All Corporately Owned Devices and setting the App Delivery Method to ON DEMAND. This means that the users will have the option to install it.

If you are adamant that you want to install it automatically on Corporate Owned devices (sitting on a desk for example) select AUTO, but I would suggest giving users the option to install for employee owned devices.

Et voila! This will now appear in the Application Catalog on the End User’s Windows 10 device.

Once the user chooses to install (or when the device gets the command to install automatically) this will install Folding and Home silently and set up a scheduled task to run every day at 5:30PM and stop the FAHclient.exe process at 8:00AM.

Here is a link to the scripts used in this article.