Version 0.11.3 of the client has been released.

Change Log

Bug Fixes
  • User Service would not restart on update
  • PowerManagement would not allow multiple restart tasks
  • It was possible for the service to crash on startup due to JIT compilation issues
  • Shutdown prompt would take 2 minutes to load the first time it was used on OS X
  • Server version would not display correctly in fog.log
  • SmartInstaller CLI configuration was misaligned.
  • On uninstallation the client would leave leftover files
New Features
  • SnapinPacks
  • OS X renaming / domain binding no longer requires a restart
  • OS X and Linux .NET dependency has lowered from 4.5 to 4.0


One of the main features that the Snapin system was lacking was the ability to include multiple files for a single snapin. SnapinPacks address this feature.

How to make a SnapinPack

Start by making a folder somewhere on your computer. Place any files your snapinpack will need. This can include things like an MSI/MST, scripts, configuration files, license files, and so on. Anything that you need should be placed in this folder. In this example we are just going to have a script.bat file.

Now we need to create the configuration file that will tell the client how to run our SnapinPack. Visit your FOG server -> Snapin Management -> SnapinPack Config

and build a config.json file. Place this config.json file into your folder you are using for the SnapinPack.

Your config.json will have 4 fields: Name, Version, File, and Args.

The Name and Version are for your own use. They will be printed in fog.log when the SnapinPack is run. You can use these fields to ensure the right version of the SnapinPack is on your FOG Server if you make multiple versions.

The File and Args are used by the client to run your SnapinPack. File should point to an executable that can be run by your Operating System. Args provides any command line arguments for File. In either File or Args you can reference [FOG_SNAPIN_PATH] and it will be replaced with the SnapinPack's path when the client runs it.

In our example, quotes are used around the script's path because [FOG_SNAPIN_PATH] may contain a space, such as C:\Program Files\...


"Name": "TestPack",
"Version": "v1.0",
"File": "cmd.exe",
"Args": "/c \"[FOG_SNAPIN_PATH]\\script.bat\""

Next, zip your folder. As shown in the below screenshot, in the root of the zip is config.json. This is very important.

How to configure a SnapinPack on your Server

SnapinPacks work with the existing snapin system. Simply create a new Snapin, upload your zip file, and leave the Snapin Run With, Snapin Run With Argument, and Snapin Arguments fields blank. The Reboot or Shutdown after install, timeout, and arguments hidden features will operate normally with your SnapinPack.

Future Improvements / Work

We will also be working on updating the Wiki with all relevant details and SnapinPack examples.