nightly backup of client files from an SBS 2003 server

Every night my client's ShadowProtect backup software saves the entire server to H: which is an external USB drive that is rotated offsite the next morning.

Recently the client requested that files on the 10 client workstations be added to the nightly backup.

The only thing that needs to be backed up is each client's Outlook PST file.

So, I scheduled a  simple dos batch file which backs up all the different pst file names:  

    call CSaveStart Cathy
   call  Csave Cathy "\\CPU0418\c$\Documents and Settings...archive.pst"
   call  Csave Cathy "\\CPU0418\c$\Documents and Settings\... inbox.pst"

    call CSaveStart John
    call Csave John "\\CPU0419\c$\Documents and Settings...archive.pst"
    call Csave John \\CPU0419\c$\Documents and Settings\... inbox.pst

… etc etc
    Call CsaveStart User10
    call Csave User10 "….archive..
    call  csave User10 " …inbox"

And, I wrote the following two supporting batch macros  Csave and CsaveStart which don't work quite the way I want.

The problem occurs when a user forgets to sign off at the end of the day.  When this happens, the master macro deletes the old backup then aborts before creating a new backup. Also none of the subsequent user files get saved.  

I can "solve" some of this problem by breaking master batch file into 10 individually scheduled batch files. And, I could probably solve some more by converting it to vbscript. But it seems obvious that this is not a satisfactory way of saving the files.  Does anybody have a more reilable way?

I know that there are third party programs to do this function, but the last time I checked it would have cost a couple thousand dollars for 10 workstations. That seems like overkill for saving 20 files.

Here are the batch files.

   ::  example CsaveStart janedoe
   echo y |del "h:\%1-1\*.*"
   rmdir "h:\%1-1"
   :: move actually renames a directory, even on very old DOS computers
   move "h:\%1" "h:\%1-1"
   md "h:\%1"  
   :: example Csave janedoe "\\cpu999\C$\Documents and Settings\janedoe\Local Settings\Application    Data\Microsoft\Outlook\janesoutlook.pst"
   copy %2 "h:\%1\*.*"
Who is Participating?
Rob WilliamsConnect With a Mentor Commented:
You could use Sysinternal's PSShutDown to force a logoff before running your scripts:
However why are you using pst files anyway? Normally you would use integrated Exchange accounts which create ost files and there is no need to back them up as the 'master' copy is part of Exchange and backed up by ShadowProtect by default.
All Courses

From novice to tech pro — start learning today.