Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

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

All of our workstations have a folder on their local drive that contains some common files used by our company. Periodically we need to push out changes to some of these files. Currently we are using System Center Configuration Manager (SCCM) to run a VBScript that executes robocopy.

This method does not provide very good reporting in SCCM and some clients are not receiving the updates.

There has to be a better way to do this, but I cannot find anything online. We would like an automated method that is transparent to the user. We are open to spending a little money, but a free solution is best. Any help would be appreciated. Thanks!

share|improve this question
up vote 1 down vote accepted

Using a script through SCCM actually sounds like a pretty good approach. Can you provide more information on why it's not working, or why some clients don't get the updates? It might be possible to modify your script so that the return code is passed along to SCCM and you get better reporting.

For example, looking at the documentation for WshShell.Run, it will return the exit code of your command. So your line should be :

Success = WshShell.Run "\\server\robocopy.exe ""\\path\to\folder"" C:\Destination_Folder /MIR, 0, True

Looking at the documentation for Robocopy shows that it will return either 0 or 1 on success. Now most commands exit 0 on success, which what I think SCCM will report. So the next step is to make sure that your VBScript passes the correct result back to SCCM. In this case, you want to return 0 if Success was 0 or 1, and return 1 if Success was >1 (or you can get more advanced and return special codes to get different error messages in SCCM). To pass this exit code we look at the documentation for WScript.Quit and we see that we need to run WScript.Quit (1); for failure or WScript.Quit (0); for success

The nice part about SCCM, is that it has all of the clients pulling the data down from the server, and SCCM can be used to stage out that event, thereby reducing load on the host file server.

The opposite (and uglier) approach is to have your server push the folder contents out to each client. Assuming you can dump out a list of all your computers, you should be able to put together a simple script that itterative over that list and coppied the folder to each client. However, this approach would require the client machine be on at the time you initiate the copy (something that SCCM can take care of for you)

Another possible alternative (you probably already thought of) is to locate this folder on a shared drive. Eliminate the issue of pushing out file entirely. Depending upon the size of the folder, perhaps this is a viable alternative.

share|improve this answer
My knowledge of SCCM is limited. We have the Program for the advertisement run a VBScript that is simply: Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "\\server\robocopy.exe ""\\path\to\folder"" C:\Destination_Folder /MIR, 0, True ... Should we be adding something to return a success or failure? – Andy May Jan 5 '10 at 20:41
I updated my answer to start pointing you in the correct direction – Evan Jan 5 '10 at 21:19

Why not set up a Subversion server, then have users use something like TortoiseSVN to pull updates?

share|improve this answer
Thank you for the suggestion, but we're looking for an automated way to accomplish this. I have updated the question to be more specific. – Andy May Jan 5 '10 at 18:24

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.