im not sure about your use of
intResult = WshShell.Run(CommandLine,, -1)
the -1 is the bWaitOnReturn
object.Run (strCommand, [intWindowStyle], [bWaitOnReturn])
of the Wshshell.Run method. this means if the script will or wont wait for the process it starts, ie ntbackup.exe to finish or not. You will want the script to wait for it to finsih, otherwise you will always return 0 and never see the real result of NTBackup.exe, thats if NTBackup.exe returns an Non zero exit code if something fails, who knows i would hope so.
Anyhow i have never tried -1, I always explicitly use a boolean, like True or False, you would want to use True.
As for mailing back it looks like you are relying on the server having a mail account of some description setup on it, i.e. outlook or something. question: have you got an smtp mail server available to use? if so, then i would go for that option, unless the CDO is working (if it aint broke dont fix it) you will find a number of examples of sending SMTP mail on this site, look at the FAQ or do a word search on it. if you dont have an smtp mail server available then if your box in question is a webserver it might already have smtp setup for its own use or it should be a simple case of enabling it, it comes with IIS i think.
your use of the eventlog is good, im not sure why more peopole dont write application eventlogs for reference, after all thats what the eventlog is there for. its pretty simple to write an eventlog to a remote machine. you might consider writing events to an audit machine locally and monitoring the results that way? would avoid the mail option altogether. saying that its nice to get a mail, people tend to respond to that.
hoo hum ,good luck
i like the way Friday is classed as a weekend!!!
only other thing is your use of the SetConstants sub
its nice to split things up logically and its a good wat to go.
the only thing with objects etc is that it is good practice to destroy them before your script terminates, i know vbscipt trash collection will do it for you, in this case, but sometimes that is not always so.
so, really before your script ends you should
Set WshShell = Nothing
Set WshShellFSO = Nothing etc
it shows others you are not only thinking about getting the job done but you are also cleaning up after yourself