WPKG with Samba
 WPKG overview
WPKG can add great value to your Samba setup, as it allows to perform software installation, updates, removal etc. on your workstations.
It is also possible to execute custom scripts on your workstations, like synchronizing time, setting printers, changing permissions or adding registry entries (basically, some of the things you would do with Active Directory and Group Policy / GPO).
This is a list that summarizes what WPKG can do for you:
- deploy software in any format - MSI, EXE, etc.
- deploy software to different groups of computers or single workstations
- easily install, upgrade or remove software
- run custom scripts to set printers, synchronize time, change permissions, add registry entries etc.
- work in a domain, in a workgroup, or even over internet or VPN (no domain controller needed)
- work with Windows 2000, XP, 2003 and Vista clients
- extremely small footprint on the client: no additional service is started
- extremely small footprint on the server: no additional service/daemon is started
- keep inventory of software installed on your Windows workstations
 How WPKG works
WPKG keeps its configuration in three XML files, which can be changed easily in an editor like vi or mcedit, or even automatically.
These XML files are:
- hosts.xml - defines the hosts and associated profiles, which these hosts will use,
- profiles.xml - defines the software packages or scripts, which will be installed/executed on hosts,
- packages.xml - defines how to install and uninstall software packages. In other words, it is a list of all applications and scripts that can be deployed or executed on workstations.
There is also one more file, wpkg.js, which we can call a "WPKG engine". It is written in JScript, and is executed by the workstations.
 Server side (Samba)
You don't have to run any additional software on your Samba server to use WPKG.
You only need a share, accessible by the workstations, with the files used by WPKG: wpkg.js ("WPKG engine"), hosts.xml (host names, which will use WPKG), profiles.xml (profiles available to hosts) and packages.xml (applications and scripts that can be deployed or executed on workstations).
Of course, you also need a folder, where you will store your applications, scripts etc. - in other words - everything that you need to install or run on your workstations.
 Client side (Windows workstations)
Your Windows workstations will not be aware of WPKG just because you created an additional share on your Samba server.
They need to be told to use WPKG first.
All you need to use WPKG on a Windows workstation is to run a command like below:
cscript \\server\wpkg\wpkg.js /synchronize /quiet
If you're not interested in technical details, just use WPKG Client to start WPKG on your workstation.
When WPKG is called on a Windows workstation with these options, it will do the following:
- look for its hostname in
\\server\wpkg\hosts.xmlfile, and a profile associated to the name,
- look which software/scripts it has in a profile in
- look for detailed package descriptions in
\\server\wpkg\packages.xmlfile - name, description, install command, remove command, exit code etc.
/synchronize means that WPKG will try to sync the packages - that is, install software if it's not already installed, execute scripts, and if it's successful, write the "status" to
C:\Windows\System32\wpkg.xml (so that software installation is not started again if it's already installed).
Of course, WPKG has many more options.
You will likely run it manually as a local or domain Administrator when you would be still testing WPKG
(just open a command line using menu Start -> Run -> cmd).
When you finally configure everything the way you like, you will want to run it automatically on each of your dozens or hundreds of workstations.
 WPKG installation
To use WPKG, you have to setup two things:
- Server side - configure a share on a Samba server with your software, scripts and WPKG files
- Client side - configure your workstations to run WPKG off a share you configured earlier
 Server side configuration
- configure a share for software, scripts, and WPKG files
 Client side configuration
- using WPKG Client
- no client side configuration needed - Samba handles everything automatically - see WPKG with winexe
Other, advanced methods:
- using Task Scheduler
- using srvany
- using cygrunsrv
Check the installation instructions page for more info.