Deployment package for system install of the Folding@home (FAH) client for Windows built using PowerShell App Deployment Toolkit (PSADT)
This deployment package is intended for deploying the client in an organization or enterprise using a standard configuration. The FAH client EULA states that "You may use this software on a computer system only if you own the system or have the written permission of the owner." Please only use this package in accordance with those terms.
The package will install and configure the client to run either as a service or a scheduled task. The client is unable to use the GPU for folding when it runs as a service. If a supported GPU is found, the client will run as a scheduled task, otherwise the client will run as a service. The FAHClient data directory is stored in a central location under C:\ProgramData (aka %ProgramData%).
AppDeployToolkit\
- Core files of PSADT. The only file that has been customized isAppDeployToolkitExtensions.ps1
which contains the following custom functions:New-FAHScheduledTask
- Creates a scheduled task to run the FAH client as LocalService by default, starting at boot and also hourly (in case the client stops for any reason).Remove-FAHScheduledTask
- Removes the scheduled task for the client. Used when the package is uninstalled.Get-FAHUsername
- (optional) Returns a username to be used based on the department the machine belongs to. At my university, the department number is part of the computer name, and that is used to return a standardized department username based on an included departments.csv file. If a username is specified indefaults.txt
, this function is not used. Adapt or replace with your own function as necessary.
Files\
- Download the FAH client installer and save to this folder. Current version is 7.6.13.SupportFiles\
- Contains supporting files.defaults.txt
- Package obtains configuration options from this file and configures the client during the installation. Options are specified, one per line, in format:option=value
Replace contents with your options; do not use as is.departments.csv
- (optional) Sample file containing department data used by Get-FAHUsername function for setting a unique username by department.FAHoptions.txt
- List of FAH client configuration options. Included as a convenience. Generated by runningFAHClient.exe --help
. Current as of 7.6.13 client.
DeployApplication.exe
- (optional) Executable that can be used to launch the Deploy-Application.ps1 script without opening a PowerShell console window. Supports passing command-line parameters to the script.Deploy-Application.ps1
- Installs/uninstalls the FAH client.Deploy-Application.exe.config
- Application configuration file.
-
Download deployment package
-
Download FAH client installer fah-installer_7.6.13_x86.exe and save to
Files\
folder. -
If you downloaded a different version of the installer than 7.6.13, make sure you update the variable declaration for
$appVersion
inDeployApplication.ps1
to match the version you are using. -
Edit defaults.txt in
SupportFiles\
to specify your configuration options. At a minimum, specifyuser
,team
, andpasskey
(optional but recommended). If you don't have a passkey, request one at https://apps.foldingathome.org/getpasskey. If you want to use different user names, do not setuser
here and continue to next step. -
(optional) If you plan to use different user names and are not setting
user
indefaults.txt
, modify the Get-FAHUsername custom function as needed to meet your requirements. -
Deploy the client using your method of choice. Commands to install/uninstall are:
-
Deploy client
powershell.exe -ExecutionPolicy bypass -NoLogo -NoProfile .\Deploy-Application.ps1
or
Deploy-Application.exe
-
Deploy client in silent mode
powershell.exe -ExecutionPolicy bypass -NoLogo -NoProfile .\Deploy-Application.ps1 -DeployMode "silent"
or
Deploy-Application.exe silent
-
Uninstall client
powershell.exe -ExecutionPolicy bypass -NoLogo -NoProfile .\Deploy-Application.ps1 -DeploymentType "Uninstall"
or
Deploy-Application.exe Uninstall
-
Uninstall client in silent mode
powershell.exe -ExecutionPolicy bypass -NoLogo -NoProfile .\Deploy-Application.ps1 -DeploymentType "Uninstall" -DeployMode "silent"
or
Deploy-Application.exe Uninstall Silent
-