Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have an executable that is used by 50+ client machines on a network and upgraded regularly. Is it acceptable to put the executable on a network share and have the client machines run it from there via a shortcut on their desktop? That way when we upgrade the .exe we can simply replace the one file with a new one and all clients will be accessing the new one. How will a slow or unstable network handle this? If this is not acceptable, what would be the best way to keep all clients updated with the latest .exe?

share|improve this question

migrated from Mar 11 '11 at 21:46

This question came from our site for professional and enthusiast programmers.

up vote 4 down vote accepted

Could have a login script that checks the program (something like md5 it) and if it is different then it downloads the application from a central server and places it on the user's desktop.

share|improve this answer
Do you believe this is a better approach than running the .exe from a network share? If so, why? – user74150 Mar 11 '11 at 21:58
I believe this is better because it will run faster on a local machine, reduces network overhead, reduce hard drive load on the server hosting, and would be easy to script. – David Rickman Mar 18 '11 at 18:23

Folks have been using this approach for 20 years. It was how things were done in the early Netware days. With a modern network, 50 clients is nothing. I assume you are running at least 100baseT.

If your network is unreliable, I'd recommend fixing it, instead of doing some workarround to make the .exe file access work. This assumes, of course, that the .exe is reasonably sized.

share|improve this answer

Personally, I'd prefer to see it run from the client machine. Loading the app is not really something that's needed across the network, if it's not essential.

+1 to the idea of a boot or login script that checks for an updated version. I've used that in the past to great effect. Cache locally.

share|improve this answer
+1 - I'm "old school", I guess, because I treat my network as a precious commodity. The less data I can regularly move the more bandwidth will be available for bursty needs. In this case I'd package the software as an MSI (with an "upgrade code" such that future versions could easily replace prior versions) and deploy it via Group Policy to run locally on the clients. – Evan Anderson Mar 12 '11 at 2:47
heh - yeah. Me too. I like the 80/20 rule. ;-) – tsykoduk Mar 12 '11 at 6:43

It sounds like this is an EXE that is built in house?

If so, and you are using Visual Studio 2005 or better, it might be worth looking into the ClickOnce Deployment options.

ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. ClickOnce deployment overcomes three major issues in deployment:

  • Difficulties in updating applications. With Microsoft Windows Installer deployment, whenever an application is updated, the user must reinstall the whole application; with ClickOnce deployment, you can provide updates automatically. Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

  • Impact to the user's computer. With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnce deployment, each application is self-contained and cannot interfere with other applications.

  • Security permissions. Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.

share|improve this answer

The controlled deployment of an application to end workstations is always preferred. If you were to lose that drive or if some user were to delete the exe, the app would be gone for all users and I'm guessing since 50+ users are running it daily, its a business necessity.

Also, when you go to upgrade it, if you want to pilot a new version you will have to deploy it or somehow redirect a certain number of users to the new file on the share. Relying on end users to do the right thing is not something that you can count on.

Deploying a single exe is pretty simple, but I would hesitate to do it through a login script. A startup script or using a tool like SCCM or SMS or Altiris is better.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.