[wpkg-users] Deploying System in Real-Time

Rainer Meier r.meier at wpkg.org
Mon May 30 09:15:49 CEST 2011

Hi Mikhail,

On 30.05.2011 08:47, mikhail tan wrote:
> Our software group could release new versions of some of our Software System
> deploying it is my problem, I wanted to deploy it real time as in real time
> you know when the new version is in our wpkg server I wanted to deploy it
> without the clients restarting the units, and
> I wanted even the clients are using the computers
> they will be able to see a new shortcut link on their
> desktop and their programs.

Actually WPKG itself (or WPKG client) does not itself include such a real-time
deployment functionality.

However that does not mean it's not possible to do. You can use standard
functionality or additional 3rd party tools to achieve this I believe.

There are two ways to achieve real-time triggering of software deployment:

- Client-initialized (polling)
- Server-initialized (pushing)

Actually the pushing solution is usually much more efficient and the preferred
way to achieve your task while polling is probably easier to implement.

You could simply install WPKG client service and just configure a scheduled task
on the client which runs the WPKG service every n minutes.
The disadvantage of this solution if of course that every n minutes it requires
some local resources as well as it imposes some network traffic. Not too much
for typical WPKG operations usually. Usually I would guess there should be less
than 1MB transfer just for an update check (load wpkg.js, configuration,
packages, hosts, profiles).

Pushing requires some listening service on the client where the server is able
to send some "do update now" command towards the clients.
This could be achieved using built-in Microsoft remote management functionality.
First install and configure the WPKG client on your client workstation and then
remotely trigger execution of WPKG client service:

    sc \\machine-name start WpkgService

You might also use sysinternals psexec to remotely execute "sc start
WpkgService" on the remote machine.
This way you just need to keep a list of clients and use a script on server side
to remotely trigger WPKG client service to make them update.

General note: Please be aware that in case the user is working on the client
while you deploy software there might be some applications or components (shared
DLL) in use. There is no direct way to notify users about which applications he
shall close. Of course you can prepare your packages in a way to force-close
applications before upgrade. For example using a "taskkill /F /IM <binary.exe>"
command at the beginning of each upgrade action. However this could lead to some
loss of unsaved data and is generally considered to be dangerous. Installing new
software is often not a problem. Software which adds shortcuts to the "all
users" desktop usually makes the shortcut appear immediately on the user desktop.


More information about the wpkg-users mailing list