FireDaemon Pro OEM (FDO) is a variant of FireDaemon Pro specifically designed for use by systems integrators or value-added resellers who wish to bundle FireDaemon Pro with their own product or platform. FDO is designed to be included in third party-installers or used in conjunction with scripts. FDO is a super-set of FireDaemon Pro. The fundamental differences are as follows:
  • no Serial Number Name or Serial Number required for installation
  • additional command-line arguments are available to automate the configuration of the product registry keys, executable program names and help file.

Distribution

FDO is distributed as a ZIP file. No .EXE or .MSI installer is shipped with the product. The ZIP file contains 32-bit and 64-bit EXEs and DLLs, prerequisites including Visual C++ Runtimes, documentation, scripts and default theme. The top-level contents of the ZIP file are below. The msxml6 executables found in the prerequisites folder are for the deployment of Microsoft XML Core Services version 6. All recent Microsoft operating systems have this update installed. These executables are included for completeness and should only be deployed to support legacy operating systems (i.e. Windows XP and Windows Server 2003).


FireDaemon Pro OEM ZIP file contents

Installation Fast Track

You would typically automate this process.


Step 1: Prepare Microsoft Windows

Microsoft Windows needs to be deployed correctly to run FireDaemon Pro OEM successfully as follows:

  1. Install Windows from an original Microsoft ISO, golden image, cloned image or equivalent. Do not deploy Pro OEM on Windows operating systems that have suffered an "in-place upgrade"
  2. Ensure Windows has been fully patched. All Windows updates should be applied
  3. Ensure EPP/EDR (i.e. antivirus/antimalware software) has been configured to whitelist the FireDaemon Pro OEM installation directory and executables
  4. For air-gapped environments, ensure the required Root CA and Intermediate Certificates are installed in the local Windows certificate store
  5. FireDaemon Pro services run by default using built-in system accounts. If you intend to use those accounts (e.g. LocalSystem) then ensure the system account locales are configured correctly for your region
  6. Deploying a language pack for your locale to ensure that notification and error messages are displayed correctly on screen, in the Windows Event Log and FireDaemon Pro log files. You can do that with lpksetup.exe or Powershell LanguagePackManagement.


Step 2: Choose A Product Name

The default product name is "FireDaemon Pro OEM". An alternative name can be chosen but it must be used consistently throughout the installation process. For this guide, the default product name is denoted as <ProductName>. This customised name is used throughout the FDO application as well as in various file system folders and registry keys plus as the source name in the Windows Application Event Log.


Step 3: Deploy EXEs, DLLs, Visual C++ Runtime, Create Folders, Deploy Service Template

Note that the 32-bit version of FireDaemon Pro OEM is not supported on 64-bit Windows systems. The 32-bit (x86) version must only be deployed on 32-bit (x86) operating systems and the 64-bit (x64) version must only be deployed on 64-bit (x64) operating systems.

  • Log in to the computer as a local or domain administrator
  • Unpack the FireDaemon Pro OEM ZIP file to a temporary folder
  • Create C:\Program Files\<ProductName> folder
  • Copy the corresponding binaries from either the x86 (32-bit) or x64 (64-bit) folder to C:\Program Files\<ProductName>
  • Install the corresponding 32-bit (vc_redist.x86.exe) or 64-bit (vc_redist.x64.exe) runtime found in the prerequisites folder. If you are deploying on Windows XP or Server 2003 deploy the vc_redist.x86.exe or vc_redist.x64.exe from the preqrequisites\winxp+server2003 folder.

If you are using Windows XP create the following folders:

  • %ALLUSERSPROFILE%\Application Data\<ProductName>\ServiceDefinitions
  • %CommonProgramFiles%\<ProductName>\ServiceDefinitions
  • Copy "Default Template.xml"  to %ALLUSERSPROFILE%\Application Data\<ProductName>\ServiceDefinitions

If you are using Windows Vista or later create the following folders:

  • %ProgramData%\<ProductName>\ServiceDefinitions
  • %CommonProgramFiles%\<ProductName>\ServiceDefinitions
  • Copy "Default Template.xml"  to %ProgramData%\<ProductName>\ServiceDefinitions


Step 4: Configure and Run FDO

Open an elevated command prompt and type the following. 
cd "C:\Program Files\<ProductName>"
firedaemon --configure --ProductName="<ProductName>"
firedaemonui

The FireDaemon Pro OEM GUI should now request elevation and be running.


Step 5: Enable Interactive Services Detection

On Windows Vista or later you can enable the Interactive Services Detection Service. If you deploy services with a GUI, then the GUI will be displayed on Session 0. Please consult this article on how to manually enable Interactive Services.


Installing FDO Alongside Other Versions of FireDaemon Pro

To avoid conflicts with current or future FireDaemon Pro installations, FDO should never be installed into “C:\Program Files\FireDaemon” or “C:\Program Files\FireDaemon Pro”.


FDO Command-Line Options


The FDO command-line installation options can be used to customise your FDO installation. Here is an example:

"C:\Program Files\FireDaemon Pro OEM\firedaemon.exe"
   --configure
   --ProductName="FireDaemon Pro OEM"
   --ProductShortName="FDO"
--HelpFileName="https://www.firedaemon.com/documentation/firedaemon-pro/"

The command-line options are case-sensitive and are described below:


OptionDescription
--configureInstructs FireDaemon Pro OEM to set up the registry keys. This argument is mandatory.
--ProductNameThis is the full name of the product (i.e. <ProductName>). If not set, it will default to "FireDaemon Pro OEM". This string is displayed in the title bar of the main GUI window and various other places, including the command line and logs. This argument is optional.
--ProductShortNameThis is an abbreviated name of the product. If not set, it will default to "FireDaemon". This string is displayed in various messages and dialog boxes. This argument is optional.
--HelpFileNameThis is the help URL or the help file name, excluding any path information. This argument is optional and allows you to specify an alternate help file. HelpFileName can be any URL or file that Windows Explorer can open, including URLs and file types such as PDF, CHM, shortcut containing a URL, or any other file system object. The file (or filesystem object) must exist in the FDO installation directory otherwise, the registry configuration will fail. This argument has three valid values:
  • Double quoted name of the replacement help file excluding the path (For example, "MyHelp.chm" or "MyHelp.pdf")
  • Empty double quotes (i.e. ""). This will signify no help and disable the F1 and Help->Contents menu in the FDO GUI
  • Omitted entirely where the help file will be set to the default of https://www.firedaemon.com/documentation/firedaemon-pro/
Any pre-pended path is stripped from the argument during configuration as the HelpFile value is appended to the installation directory.
--TurnOffSession0Switch[=yes]Setting this option to Yes hides and disables 'Switch To Session 0'.
--TurnOffInSessionCommands[=yes]Setting this option to Yes hides and disables the 'Start Service In-Session' functionality.
--TurnOffOnboardingCues[=yes]Settings this option will turn off the onboarding cues in the FireDaemon Pro GUI. These are pulsing red dots that indicate where to click in the FireDaemon Pro GUI to create a new service and view built-in Windows services.


Registry Keys

When deploying FDO, the following registry keys will be created. Whilst these registry keys can be created manually, we recommend that you let FDO do the hard work of setting up the registry via the --configure command.


Product Registry Keys

HKLM\SOFTWARE\FireDaemon Technologies\FireDaemon Pro OEM
NameTypeValue
HelpFileREG_SZhttps://www.firedaemon.com/documentation/firedaemon-pro/
InstallationDirREG_SZUnquoted path to where FDO has been deployed
ProductFlavorREG_SZOEM
ProductNameREG_SZ<ProductName>
ProductShortNameREG_SZ<ProductShortName>
ServiceExeREG_SZFireDaemon.exe
TurnOffInSessionCommandsREG_DWORD0
TurnOffSession0SwitchREG_DWORD0


Global Service Settings

HKLM\SOFTWARE\FireDaemon Technologies\FireDaemon Pro OEM\GlobalSettings\Services
NameTypeValue
AutostartsOffOnInstallREG_DWORD0
CloneNamePrefixREG_SZClone-
CloneNameSeparatorREG_SZ-of-
ControlREG_DWORD0
UseCloneNameSeparatorREG_DWORD1


Global Preferences

HKLM\SOFTWARE\FireDaemon Technologies\FireDaemon Pro OEM\GlobalSettings\Preferences
NameTypeValue
AffinityRadixREG_DWORD10
FilterServicesREG_DWORD1
RefreshFreqREG_DWORD30
SplashOnREG_DWORD1
SuppressPopupsREG_DWORD0
SummaryToolTipDelayREG_DWORD1000
VersionCheckREG_DWORD1
ConfirmControlAllActionsREG_DWORD1


User Preferences

All global preference values are replicated and stored individually for each user by the FDO GUI here:

HKCU\Software\FireDaemon Technologies\<ProductName>\BCGWorkspace\Preferences

GUI Window Placement and Column Sizing

The FireDaemon Pro GUI recalls the most recent application window placement and width of list columns and sorting. Those values are stored here:

HKCU\Software\FireDaemon Technologies\<ProductName>\BCGWorkspace\ServiceListColumns
HKCU\Software\FireDaemon Technologies\<ProductName>\BCGWorkspace\WindowPlacement

Event Log

HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\<ProductName>
NameTypeValue
EventMessageFileREG_SZPath to FDO's Core.dll
TypesSupportedREG_DWORD7
CategoryMessageFileREG_SZPath to FDO's Core.dll
CategoryCountREG_DWORD1


Renaming FireDaemon.exe and FireDaemonUI.exe

FireDaemon.exe can be renamed. To ensure that FDO recognizes the new file name, the value of the ServiceExe registry setting listed above must be updated with the new file name. Additionally, when using the –-configure option described above, FireDaemon will automatically populate the ServiceExe registry setting with the new file name. For example, after renaming FireDaemon.exe to MyServiceApp.exe the command :

MyServiceApp.exe --configure

will populate ServiceExe with MyServiceApp.exe.


Note that the value of ServiceExe is appended to the installation directory. It should only contain the file name and extension delimited by a period (i.e. “.”). No path is permitted in the value.


FireDaemonUI.exe can also be renamed. No registry updates are necessary.

Other DLLs shipped with FDO cannot be renamed.


Ramifications of Renaming FireDaemon.exe and FireDaemonUI.exe

If FireDaemon.exe is renamed, the only services that will be displayed in the FireDaemon Pro GUI will be those where the ServiceExe setting matches the ImagePath registry setting found in the service configuration itself, typically located under HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName>. So if you initially use the default name (i.e. FireDaemon.exe) and then later rename it and update the ServiceExe registry setting, any pre-existing services will no longer be recognized as FireDaemon Pro services and will be hidden in the FireDaemon Pro services list in the FireDaemon Pro GUI. Those services will, instead, be visible in the regular Windows services list in the FireDaemon Pro GUI.


Replacing FireDaemon.exe and FireDaemonUI.exe Application Icons


The application icons in FireDaemon.exe and FireDaemonUI.exe can be replaced. Replacing the icons (e.g. via Resource Hacker) will cause the digital certificates to be removed from the executables. You will need to organise your own OV or EV Authenticode code signing certificate and re-sign the executables accordingly with the Windows Software Development Kit SignTool utility.


Uninstalling FDO


To uninstall FDO, ensure that you stop all FDO services in advance, and then uninstall them before deconfiguring the product. To fully uninstall FDO, follow these steps:

cd c:\Program Files\FireDaemon Pro OEM
FireDaemon --stop-all
FireDaemon --uninstall-all
FireDaemon --deconfigure

cd ..
rmdir /s "FireDaemon Pro OEM"
rmdir /s %ProgramData%\"FireDaemon Pro OEM"
rmdir /s %CommonProgramFiles%\"FireDaemon Pro OEM"

The complete list of command-line options can be found here.


UAC and Session 0 Isolation


Ensure that you familiarize yourself with UAC and Session 0 Isolation limitations when running FDO on Windows Vista or later.


Theming and Branding FDO


FDO is highly customisable from a theming and branding perspective. Please refer to the Theming and Branding guide for more information.


What To Redistribute?


The following files for each platform type (i.e. 32-bit and 64-bit) should be minimally included in your installer or deployed on your platform in addition to the corresponding Visual Studio C++ Runtime. The files folders in the table below must all reside in the same directory:


FileDescription
FireDaemon.exeFDO service and command-line program
FireDaemonUI.exeFDO GUI
Core.dllShared Library
Licensing.dllShared Library
VisualLayer.dllShared Library
Skin FolderDefault theme


License Restrictions


The FireDaemon End User License Agreement allows the licensee to redistribute FDO royalty-free as part of a product or platform. It is prohibited for FDO to be redistributed or sold as a standalone product or to be made available for public download.