|What you want to do is commonly handled with an Electronic Software Distribution (ESD) system in place.|
You would have a server that had the server side application installed, and typically a smaller client side portion of the app on each desktop.
The update "package" is assembled on the server and distributed (typically) on a scheduled basis, usually off-hours.
The server would keep track of the distributions by monitoring which desktops were successful and which need to be redone. Network glitches, non-standard system images and users who shut off their machines even after you told them (multiple times) to log-off only are typical causes of ESD failures.
All that said, you might want to post your question in the forum associated with whatever Server OS you are running (WinServer 2003, 2008, Unix) etc.
There may be "manual" ways to do your push without a full blown ESD system.