FOG Client is a cross platform computer management software. With it, Linux, Mac, and Windows machines can easily be managed by a remote server.
Windows | Linux | OSX |
---|---|---|
Feature | Windows | Linux | OSX |
---|---|---|---|
Auto Logout | ✓ | ✓ | ✓ |
Auto Updating | ✓ | ✓ | ✓ |
PowerManagement | ✓ | ✓ | ✓ |
Rename | ✓ | ✓ | ✓ |
Join Active Directory | ✓ | ✓ | |
Join Samba Directory | ✓ | ✓ | |
Join Open Directory | ✓ | ✓ | |
Snapins | ✓ | ✓ | ✓ |
Snapin Packs | ✓ | ✓ | ✓ |
Task Reboot | ✓ | ✓ | ✓ |
User Tracker | ✓ | ✓ | ✓ |
TCP/IP Printers | ✓ | ||
Network Printers | ✓ | ||
CUPS Printers | ✓ | ✓ |
To checkout and build the entire client (including the Installer) Windows is required. This is due to the MSI for network deployment and the Universal Installer. The following dependencies must be installed and included in PATH
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\Version
and HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Version
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version
and HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version
In case you want to build the Universal Installer you need to add ILMerge as well:
Adding PATH variables:
rundll32.exe sysdm.cpl,EditEnvironmentVariables
PATH
, Variable value: C:\Program Files\MSBuild\14.0\Bin;C:\Program Files\Microsoft\ILMerge
Now, restart your system!
Open Git Bash and clone the repository:
IEUser@WIN7 MINGW32 ~/Desktop
$ git clone https://github.com/FOGProject/fog-client
Cloning into 'fog-client'...
...
Powershell must be configured to allow scripts to be run on the machine. Open CMD as adminstrator and run
powershell "Set-ExecutionPolicy RemoteSigned"
powershell "C:\path\to\fog-client\build.ps1"
The binaries will be in C:\path\to\fog-client\bin
The client's functionality derives from modules. Each module has 1 specific goal, and is isolated from every other module. Each module is executed in a sandbox-like environment, preventing bad code from crashing the service. Since each module is isolated, the client's server can choose which modules to enable or disable.
AutoLogOut is responsible for automatically logging out users after a set inactivity period. Once that time period is reached, the user is notified that if they remain inactive they will be logged out.
xprintidle
is installed.PowerManagement is a cron-style power management module. A computer can be configured to restart / shutdown at specific times / days. On-demand shutdown / restarts can also be issued with this module.
HostnameChanger is one of the core, and most used, modules of the client. It will:
This module also handles renaming in a domain-friendly fashion. If a computer is joined to a domain, it will first leave the domain, then rename the host, and then join back. This ensures that there are no remenants in the domain.
PrinterManager is aimed to replace the difficult GPO printer systems. Due to the complexity of printers in general, this module has one of the steepest learning curves.
There are three printer management modes
Snapins are executables push out via the FOG server. A snapin can also be set to reboot after finishing. With this module you can push out MSIs, EXEs, batch scripts, shell scripts, or any other file capable of being executed.
TaskReboot will automatically restart a computer if the client's server has task waiting for the computer. Example tasks include image deployment, image capturing and hardware inventory.
UserTracker will automatically report to the FOG server any logins or logouts that occur on the computer.