i spent the better part of an afternoon writing a script to pick up some events in the event (ha?) that a machine had antivirus problems: dats too old, version too old, or antivirus not installed. i don't think that anyone would disagree with me on this one bit. scripting something like this is pretty straightforward... until you introduce it to mom. at that point, it's easy to get entrenched in stupidity. won't bore you with the details of all the iterations i spent writing in goofy lines of debug to figure out why it wasn't working. anyway, turns out the problem had a lot to do with this little bit of script. all the other stuff about version and existence worked fine.
If DateDifference(CDate(sAVDate)) < sDaysBehind Then CreateEvent 41102,EVENT_WARN,"Antivirus Health Check","DATs are old." End Ifi've condensed the createevent line for brevity (and since brevity is the soul of wit, i should make this post small, right? actually... hmmm.). anyway, the output would look something like the following:
DATs are greater than  days old! Version: 7.1 DAT Date: 9/12/2006 -7 < -10now substitute DateDifference(CDate(sAVDate)) with -7 and sDaysBehind with -10. in this dimension of earth, i believe that -7 is greater -10. in the world that mom exists, i don't think this is the case. an if/then evaluation like that would have returned a boolean value of false which means: do not proceed to the next line. just end. it doesn't matter. i found where the evaluation was true, like -19 < -10 and the process went through the same way. before i put this in mom, the evaluations worked each time. i digress. i don't think it's fair to say that in mom's world this expression would be true. i think it probably means it didn't like the negative values. i'm not sure if it didn't like it in the parameter or in the script. either way, it was too late to keep trying to figure it out. to fix it, i ended up using absolute values (abs function). so now it looks more like:
DATS are greater than  days old! Version: 7.1 DAT Date: 9/12/2006 17 > 15one caveat about this script, if you were curious... it is meant for mcafee viruscan enterprise. i'm sure changing around the registry key locations to find what you want wouldn't be problematic at all. there are some parameters to be aware of. i'll list them here:
- Current Version - three character version that the client should meet (e.g. 7.0, 7.1, 8.0)
- Days Behind - number of days that a client can lapse dat updates (looks at the virus definition date on the client)
- LogSucessEvent - standard [true/false] input to note whether to log for successes